动态规划
动态规划
动态规划
记忆化搜索,递推
入门 DP
爬楼梯
- 递归+记忆化搜索
- 自底向上递推
组合总和 Ⅳ
理解递推的初始化
问:这个代码和完全背包(例如 518. 零钱兑换 II)的代码很像,二者区别在哪?
答:本题计算的是排列,完全背包计算的是组合。比如 1,2 和 2,1 这两个排列,在本题是有区别的,是两种方案;但在完全背包中这两个排列没有区别,只算一种方案。从代码上看,计算排列(本题)需要外层循环枚举体积,内层循环枚举物品;计算组合(完全背包)需要外层循环枚举物品,内层循环枚举体积。(作者:灵茶山艾府)
统计构造好字符串的方案数
2466. 统计构造好字符串的方案数 - 力扣(LeetCode)
数字大时,提前取,加快速度并减小空间。
1 2 3 4# 提前取模,不然结果会是天文数字,没有那么多空间存得下来 return (dfs(i - zero) + dfs(i - one)) % MOD # or f[i] = (fun(i,zero)+fun(i,one)) % MOD匿名函数,减少冗余代码和加速
1fun = lambda x,y: f[x-y] if x>=y else 0
统计打字方案数
预处理操作666
标准库 itertools 的 groupby
1 2 3 4 5 6for ch, s in groupby(pressedKeys): print(ch, ''.join(s)) # pressedKeys = "22233" # 标准输出 # 2 222 # 3 33
最后更新于