- 博客(4)
- 收藏
- 关注
原创 2021-02-19
(四)排序与查找 基本知识点 快排 O(nlogn)O(nlogn)O(nlogn) 堆排 O(nlogn)O(nlogn)O(nlogn) 二分查找 O(nlogn)O(nlogn)O(nlogn) 归并排序 O(nlogn)O(nlogn)O(nlogn) 应用 最小/大的K个,…
2021-02-19 11:33:24 59
原创 2021-02-19
(三) 动态规划 基本知识点 确定dp数组以及下标的含义 确定递推公式 dp数组如何初始化 确定遍历顺序 举例推导dp数组 一维DP 滑动窗口 左右两指针,右指针主动移动,当窗口不满足约束条件时,移动左指针直到满足。 def findSubArray(nums): N = len(nums) # 数组/字符串长度 left, right = 0, 0 # 双指针,表示当前遍历的区间[left, right],闭区间 sums = 0 # 用于统计 子数组/子区间 是否有效,根据题
2021-02-19 11:30:01 79
原创 2021-02-19
(二)树 基本知识点 最小生成树 Kruscal 寻找最小边 Prim 寻找点 Kruscal VS prim 给定源点的最短路径 无负权边 朴素的Dijkstra算法 O(n2)O(n^2)O(n2) 适合稠密图 堆优化版的Dijkstra算法 O(mlogn)O(mlogn)O(mlogn)适合稀疏图 有负权边 Bellman-Ford O(nm)O(nm)O(nm) spfa 一般O(m)O(m)O(m),最坏O(nm)O(nm)O(nm) 多源最短路径 Floyd
2021-02-19 10:59:30 53
原创 (一)图
(一)图 基本方法 DFS 运用递归,深度优先遍历。 代码框架为: void dfs(int u) { //对当前节点进行操作 for (int v: edges[u]) {//遍历当前节点的邻居 //(如果未遍历过)递归DFS dfs(v); } //对当前节点后续操作 } 时间复杂度:O(n+m)O(n+m)O(n+m) 空间复杂度:O(n+m)O(n+m)O(n+m
2021-01-26 21:23:32 86
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人