摘要:
讲解视频见刘宇波leetcode动态规划第三个视频 记忆化搜索代码: 动态规划代码: 阅读全文
随笔分类 - 动态规划
[pat]1045 Favorite Color Stripe
2018-06-17 12:20 by legend聪, 219 阅读, 收藏,
摘要:
1.用一个数组里面存储喜爱数字的值来区分数字是不是喜爱,以及值的大小顺序,用vector循环删除a数组中不是喜爱的元素,这里it=erase()之后it自动指向下一个元素,由于循环每次还要自增1,所以要加上it--。 2.然后就是写dp来寻找最长的序列,序列可以不是连续的,也就是并不是所有的喜爱数字 阅读全文
[pat]1007 Maximum Subsequence Sum
2018-06-12 23:49 by legend聪, 194 阅读, 收藏,
摘要:
经典最大连续子序列,dp[0]=a[0],状态转移dp[i]=max(dp[i-1]+a[i],a[i])找到最大的dp[i]. 难点在于记录起点,这里同样利用动态规划s[i],如果dp[i]选择的是dp[i-1]+a[i]那么s[i]=s[i-1]dp[i]与dp[i-1]存在共同的起点,如果的d 阅读全文
leetcode 343 整数拆分
2018-06-05 21:19 by legend聪, 205 阅读, 收藏,
摘要:
1.这个题拿到之后没有什么思路,此时就应该考虑暴力法。然而每次不知道要拆成几份,没办法用循环,所以想到用递归。 如图所示进行递归,显然有很多重复的计算,所以用自底向上的动态规划。 2.还有一个问题就是memo[i]是如果拆开i的话的最大值,有些数字比如5=2+3,2*3=6>5,这种数字memo[i 阅读全文
leetcode 120 triangle
2018-06-05 15:22 by legend聪, 167 阅读, 收藏,
摘要:
1.递归写法妥妥的超时,反复DFS。 2.正确的操作 ,自底向上的进行动态规划,根据题目特点找出这个triangle的元素编号规律,发现只要写成和的形式的数就可以了 3.然后进行memo数组的建立,遍历最底层的元素,找出其中的最小值即可完成。 阅读全文
浙公网安备 33010602011771号