![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
usst_ls
这个作者很懒,什么都没留下…
展开
-
动态规划的实现(二)---LeetCode面试题08.01与17.16
08.01三步问题## 主要思路:假设现在求到i阶阶梯的方法种数dp[i],可以考虑它的上一步,分为三种情况:从i-1阶迈一步到达,i-1阶的方法数dp[i-1]; 从i-2阶一次上2阶到达,方法数dp[i-2]; 从i-3阶一次上3阶到达,方法数dp[i-3]。 因此dp[i]=dp[i-1]+dp[i-2]+dp[i-3]为状态转移方程。class Solution: def waysToStep(self, n: int) -> int: if n<3:原创 2020-08-18 19:38:45 · 148 阅读 · 1 评论 -
动态规划的实现(一)——LeetCode198、53题
动态规划的实现(一)leetcode198题:打家劫舍问题这是一道经典的动态规划问题,当然也可以用别的算法来解决,比如暴力枚举,或者是使用贪心算法来求出最后的结果,但是这些方法都没有动态规划要来的简单,将原问题分为子问题,找到状态转移方程,这里分为两种情况:第i间房屋被偷,那么第i-1间不被偷,此时金额总数为dp[i-2]+nums[i];第i间不被偷,此时金额总数为dp[i-1];两种情况下选择金额的最大值,即所要求的的结果。class Solution {public: int rob(原创 2020-08-09 20:28:49 · 133 阅读 · 0 评论 -
LeetCode67题——二进制求和
67.二进制求和方法一将a和b两个字符串分别转化为十进制(这里使用a[-i],使其倒序遍历,pow()函数则是求得2的i-1次方),然后相加,把结果存储在x中;m,n=divmod(x,2)函数是m=x/2,n=x%2,然后把余数n倒着串起来,即所要的结果。 class Solution: def addBinary(self, a: str, b: str) -> str: if a=='0' and b=='0': return '0'原创 2020-08-08 14:44:25 · 173 阅读 · 0 评论