随笔分类 -  LeetCode

摘要:可以用两个优先队列记录数据流及其中位数。通过在两个队列插入数据以及平衡数据,维持队列的top为中位数 阅读全文
posted @ 2021-12-07 20:20 80k 阅读(25) 评论(0) 推荐(0) 编辑
摘要:丑数可以利用多指针记录当前因数指向的丑数位置 min函数对int 和 unsigned_int取最小时,要进行类型转换 阅读全文
posted @ 2021-12-07 20:20 80k 阅读(30) 评论(0) 推荐(0) 编辑
摘要:判断是否可以成为三角形,可以先排序,再两重循环,降低复杂度。 阅读全文
posted @ 2021-12-07 20:19 80k 阅读(18) 评论(0) 推荐(0) 编辑
摘要:三色标记法找图中的环,或拓扑排序思想拆除安全的点 阅读全文
posted @ 2021-12-07 20:19 80k 阅读(25) 评论(0) 推荐(0) 编辑
摘要:Dijkstra算法可以利用最小堆进行优化 阅读全文
posted @ 2021-12-07 20:18 80k 阅读(17) 评论(0) 推荐(0) 编辑
摘要:is_sorted判断数组是否有序 阅读全文
posted @ 2021-12-07 20:18 80k 阅读(27) 评论(0) 推荐(0) 编辑
摘要:vector.back()获取vector最后一个元素。multiset自动排序。tuple元组,tuple是一个固定大小的不同类型值的集合,是泛化的std::pair。std::get<ith>(tuple_obj)可以获取tuple_obj的第ith个值,ith必须在编译期已经给定。 阅读全文
posted @ 2021-12-07 20:17 80k 阅读(28) 评论(0) 推荐(0) 编辑
摘要:通过一次深度优先遍历以及一个unordered_map可以记录每个节点的父节点 c++17,结构化绑定,结构化绑定允许通过对象、结构体的成员来初始化多个变量,结构化绑定声明使用auto来声明多个变量,所有变量都必须用中括号[ ]括起来。在所有情况下,元素或数据成员的数量都必须符合结构化绑定声明中的名 阅读全文
posted @ 2021-12-07 20:16 80k 阅读(27) 评论(0) 推荐(0) 编辑
摘要:lambda函数在递归调用时,要写清楚函数的类型,而不能用auto,且需要捕获std::function<void(TreeNode*)> DFS=[&](TreeNode* node){DFS(node->left);DFS(node->right);}; 阅读全文
posted @ 2021-12-07 20:15 80k 阅读(29) 评论(0) 推荐(0) 编辑
摘要:通过定义d[],d[n]表示长度为n+1的数组尾部数字最小值(最小值更容易得到更长的数组),通过不断更新d[],得到最长递增子序列 阅读全文
posted @ 2021-12-07 20:15 80k 阅读(28) 评论(0) 推荐(0) 编辑
摘要:当其中一个数组元素各不相同时,最长公共子序列问题可以转化为最长上升子序列问题。 阅读全文
posted @ 2021-12-07 20:14 80k 阅读(24) 评论(0) 推荐(0) 编辑
摘要:multimap按照key从小到大排序,且value不排序multiset<pair>按照pair从小到大排序,先比较key再比较value priority_queue<T> 传入less<T>时是大根堆,传入greater<T>时是小根堆,这和一般的算法是反的(例如sort())。 阅读全文
posted @ 2021-12-07 20:07 80k 阅读(17) 评论(0) 推荐(0) 编辑
摘要:采取「一边遍历一边统计」的方式,可以避免重复计算 v是由小到大排序的容器upper_bound(v.begin(), v.end(), val);可以利用二分查找返回第一个大于val的位置的迭代器lower_bound( begin,end,val);返回第一个大于等于的位置pair<Ty1,Ty2 阅读全文
posted @ 2021-12-07 20:07 80k 阅读(27) 评论(0) 推荐(0) 编辑
摘要:isdigit() 判断char是否为数字islower()判断char是否为小写字母to_string 转为string对于括号序列相关的题目,通用的解法是使用递归或栈。 阅读全文
posted @ 2021-12-07 20:06 80k 阅读(29) 评论(0) 推荐(0) 编辑
摘要:string的erase pop_back() substr()可用于删除操作。stoi将string转化为int 阅读全文
posted @ 2021-12-07 20:05 80k 阅读(20) 评论(0) 推荐(0) 编辑
摘要:unordered_map可以hash vector建立邻接矩阵,以空间换时间建立unordered_map<属性,节点>,从而保存图的属性到节点的映射关系,从而确定节点的邻接关系。 阅读全文
posted @ 2021-12-07 20:04 80k 阅读(16) 评论(0) 推荐(0) 编辑
摘要:状态转移使用广度优先搜索unordered_set可以hash string 但是不能用vector注意广度优先搜索时,若使用int step和 unordered_set<T>/vecotr<bool> visited,step每层加一而不是每次加一或者不使用step,而是使用unordered_ 阅读全文
posted @ 2021-12-07 20:04 80k 阅读(21) 评论(0) 推荐(0) 编辑
摘要:双向广度优先搜索 queue<string> begin_queue,end_queue; begin_queue.push(begin); end_queue.push(end); unordered_set<string> begin_visited,end_visited; begin_vis 阅读全文
posted @ 2021-12-07 20:03 80k 阅读(29) 评论(0) 推荐(0) 编辑
摘要:广度优先搜索获取最短路径方法。 emplace_back(),可以无参数直接调用。 可以用点和边构建图; unordered_map<string,int> word_id; vector<vector<int>> edge;//第一维表示每个节点,第二位表示每个相邻的节点 再通过广度优先搜索获取最 阅读全文
posted @ 2021-12-07 20:00 80k 阅读(27) 评论(0) 推荐(0) 编辑
摘要:辗转相除法求最大公约数 int GCD(int x,int y){ return y?GCD(y,x%y):x;}(整数)相除会导致数据精度问题,可以保存两个整数(除以最大公约数),注意考虑负数和0。 LL GCD(LL x,LL y){ if(x%y==0) return y; return GC 阅读全文
posted @ 2021-12-07 19:59 80k 阅读(39) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示