摘要:
Acwing 哈夫曼树 哈夫曼树的编码,可以通过优先级队列来实现。 #include<iostream> #include<algorithm> #include<queue> using namespace std; const int N = 1e5 + 10; // 通过优先级队列来实现自动排 阅读全文
posted @ 2021-01-04 23:36
alexemey
阅读(47)
评论(0)
推荐(0)
摘要:
Leetcode Acwing 贪心 \(O(n)\) 对于某个序列中的某个元素nums[i]来说,设置j为其向前扫描的指针,可知随着j不断向前移动,nums[j~i]乘积的绝对值是不断增加的(除非是遇到0).因此我们只要寻找能够保证nums[j~i] > 0的最小的j就行。 具体的做法,则是在线性 阅读全文
posted @ 2021-01-04 22:50
alexemey
阅读(81)
评论(0)
推荐(0)
摘要:
Leetcode Acwing 动态规划 \(O(n)\) 使用两个状态表示 f[i]表示1~i家中必偷i家的偷窃最大金额 g[i]表示1~i家中必不偷i家的偷窃最大金额 时间复杂度 \(O(n)\) 空间复杂度 \(O(2n)\) Tip 以后能一眼看出来的复杂度我就不写了 class Solut 阅读全文
posted @ 2021-01-04 22:26
alexemey
阅读(44)
评论(0)
推荐(0)
摘要:
leetcode acwing 动态规划 算法1 \(O(n^3)\) 时间复杂度 因为substr()时间复杂度为$O(n)$,动态规划需要$O(n2)$,所以整体时间复杂度为$O(n3)$ 空间复杂度 \(O(n^2)\) C++ 代码 class Solution { public: bool 阅读全文
posted @ 2021-01-04 22:06
alexemey
阅读(90)
评论(0)
推荐(0)
摘要:
Leetcode Acwing 线性遍历 \(O(n)\) 线性扫描一下整个序列,用minp维护一下当前prices[1~i-1]中的最小值,并计算prices[i]与它的差值,以此更新一下答案。 时间复杂度 \(O(n)\) 空间复杂度 \(O(1)\) class Solution { publ 阅读全文
posted @ 2021-01-04 20:49
alexemey
阅读(35)
评论(0)
推荐(0)
摘要:
Leetcode Acwing 递归 \(O(3^n) - O(4^n)\) 假如只有两个数字,我们想到的就是双重循环。但是这题输入长度是不确定的,所以我们使用递归的做法。 时间复杂度 由于一个数字对应的字母可能是4个也可能是3个,根据乘法原理,时间复杂度在$O(3n) - O(4n)$之间 空间复 阅读全文
posted @ 2021-01-04 20:29
alexemey
阅读(58)
评论(0)
推荐(0)

浙公网安备 33010602011771号