摘要:
title: 01背包、有依赖的背包 date: 2024-10-20 10:47:00 +0800 categories: [algorithm, problems] tags: [Algorithm, Knapsack problem] description: 01背包、有依赖的背包 P104 阅读全文
摘要:
title: KMP date: 2024-10-19 10:30:44 +0800 categories: [algorithm, summary] tags: [Algorithm, KMP] description: KMP s1 字符串是否包含 s2 字符串,如果包含返回 s1 中包含 s2 阅读全文
摘要:
title: 质数判断、质因子分解、质数筛 date: 2024-10-17 10:37:23 +0800 categories: [algorithm, summary] tags: [Algorithm, Prime number] description: 质数判断、质因子分解、质数筛 判断质 阅读全文
摘要:
字符串哈希 哈希函数的基本性质: 1)输入参数的可能性是无限的,输出的值范围相对有限 2)输入同样的样本一定得到同样的输出值,也就是哈希函数没有任何随机机制 3)输入不同的样本也可能得到同样的输出值,此时叫哈希碰撞 4)输入大量不同的样本,得到的大量输出值,会几乎均匀的分布在整个输出域上 base 阅读全文
摘要:
最长递增子序列 300. 最长递增子序列 普通解法 #include <vector> using namespace std; class Solution { public: // 时间复杂度 O(n^2) int lengthOfLIS(vector<int> &nums) { int n = 阅读全文
摘要:
子数组最大累加和(下) 152. 乘积最大子数组 #include <vector> #include <algorithm> using namespace std; class Solution { public: int maxProduct(vector<int> &nums) { int 阅读全文
摘要:
二分答案法 估计最终答案的大概范围 分析问题的答案和给定条件之间的单调性 建立一个 f 函数,当答案固定的情况下,判断给定的条件是否达标 在最终答案可能的范围上不断二分搜索,每次用 f 函数判断,直到二分结束,找到最合适的答案 875. 爱吃香蕉的珂珂 #include <vector> #incl 阅读全文
摘要:
二维前缀和 304. 二维区域和检索 - 矩阵不可变 二位前缀和目的是预处理出一个结构,以后每次查询二维数组任何范围上的累加和都是 O(1) 的操作 根据原始状况,生成二维前缀和数组sum, sum[i][j]: 代表左上角 (0,0) 到右下角 (i,j) 这个范围的累加和 sum[i][j] + 阅读全文
摘要:
双指针 同向指针 快慢指针 从两端向中间的指针 其他 922. 按奇偶排序数组 II #include <vector> using namespace std; class Solution { public: // 时间复杂度 O(n),额外空间复杂度 O(1) vector<int> sort 阅读全文
摘要:
滑动窗口 维持左右边界都不回退的一段范围,求解子数组、子串相关问题 求子数组以每个位置开头或者结尾情况下的答案 找范围和答案指标之间的单调性关系 209. 长度最小的子数组 #include <vector> #include <valarray> using namespace std; clas 阅读全文