dynamic programming
文章平均质量分 82
WaterlooAss
这个作者很懒,什么都没留下…
展开
-
Knight Probability in Chessboard
这个题我们要计算k moves之后, knight 还留在board上的概率. 那说白了, 就是我们要计算knight去每个cell 上的概率after k moves 之后.原创 2023-01-09 10:12:18 · 94 阅读 · 0 评论 -
Race Car
这个题难度真的大. 尤其是dp的答案真的难…比较普遍的思路, 就是BFS. 因为找最短路径嘛. 所以从1开始BFS两种choices. 然后设置level 直到find 到target, 就是最短路径. 然后 time complexity 是 O(Target*log(Target)), 其实是很快的.这个是网上的答案, 不是我写的. 因为我一直在理解Time Complexity, 懒得自己写了.解释一下为什么是O(Target*log(Target)),原创 2023-01-07 10:21:51 · 117 阅读 · 0 评论 -
Total Appeal of A String
这个题的找each character contribution 的方法很简单. 我简单举个例子.简单说就是数每个character 出现在几个substring里了.然后数substring的方法就是character 的左边range✖️右边range.(类似montonic stack)像这个题的话, 就不需要montonic stack了, 直接一个loop 走遍每个character。原创 2022-12-22 14:00:32 · 69 阅读 · 0 评论 -
Maximum Number of Books You Can Take
就像arr[2] = 4, arr[3] = 8, arr[4] = 6. 就算我们arr[4] 取6, arr[3] 取 5, arr[2] 取4. dp[2] 原先算出来的结果就是假设arr[2] 取4. 所以可以直接dp[4] = dp[2] + 5(arr[3]取值) + 6(arr[4] 取值)dp[3] = dp[2] + 8 = , dp[4] = dp[1] + 4 + 5+ 6 (其实= dp[2] + 5 + 6)原创 2022-12-20 10:18:33 · 65 阅读 · 0 评论