随笔分类 -  数据结构与算法

Leetcode——双向链表和哈希表实现LRU缓存和LFU缓存
摘要:一、Leetcode146.LRU缓存 1. 使用STL list和unordered_map实现 using KV = pair<int, int>; class LRUCache{ private: int cacheCapacity; list<KV> cacheList; unordered 阅读全文

posted @ 2023-01-14 17:38 七昂的技术之旅 阅读(138) 评论(0) 推荐(0)

LeetCode148. Sort List 单链表排序
摘要:单链表排序 以arr = [8,6,7,5,1,2]为例 1. 自顶向下归并排序(递归)——分治法 Time: O(NlogN) Space: O(LOG(N)) 自顶向下: (8->6->7) | (5->1->2) (8->6)|(7) | (5->1)|(2) (8)|(6)|(7) |(5) 阅读全文

posted @ 2022-07-03 13:15 七昂的技术之旅 阅读(51) 评论(0) 推荐(0)

LeetCode 二叉树的最近公共祖先
摘要:一.二叉搜索树的最近公共祖先 利用二叉搜索树的性质,祖先的两个孩子,左孩子的小于根节点的值,右孩子大于根节点的值。 如果根节点的值,同时大于p的值和q的值,那么在左子树找根节点; 如果根节点的值,同时小于p的值和q的值,那么在右子树找根节点。 /** * Definition for a binar 阅读全文

posted @ 2022-01-31 11:12 七昂的技术之旅 阅读(35) 评论(0) 推荐(0)

c++实现几种常见排序算法
摘要:一、快速排序 int getPivot(vector<int>& arr, int left, int right){ int tmp = arr[left]; while(left < right){ while(left < right && arr[right] >= tmp){ right 阅读全文

posted @ 2022-01-26 23:53 七昂的技术之旅 阅读(78) 评论(0) 推荐(0)

排序算法的实现
摘要:一.冒泡排序 #include <cstdio> #include <cstring> int main() { int a[10]={5,8,16,7,9,10,14,12,2,1}; int i,j; for(i=0;i<9;i++) { for(j=0;j<9-i;j++) { if(a[j] 阅读全文

posted @ 2018-01-20 16:02 七昂的技术之旅 阅读(145) 评论(0) 推荐(0)

图——广度优先遍历(邻接矩阵存储)
摘要:图——广度优先遍历 #include <cstdio> #include <iostream> #include <queue> using namespace std; int graph[100][100]={0}; int visited[100]={0}; queue <int> q; vo 阅读全文

posted @ 2017-05-08 16:43 七昂的技术之旅 阅读(338) 评论(0) 推荐(0)

导航