1.爬楼梯

dp[i]为到达第i个阶梯的所有走法数量。

所求为dp[n]

dp数组没有必要一直存在,已知前两个即可。

    int climbStairs(int n) {//初始状态加上递推式int num1=1,num2=2;if(n<=2)return n;else{for(int i=2;i<n;++i){int temp=num1+num2;num1=num2;num2=temp;}}return num2;}

2.买卖股票的最佳时机

dp[i]表示第i天卖出时的最大获利

所求为

只需一个dp缓存量即可,外加一个当前最低价格。

    int maxProfit(vector<int>& prices) {int min_price=INT_MAX;int max_profit=0;for(auto price:prices){max_profit=max(max_profit,price-min_price);min_price=min(min_price,price);}return max_profit;}

3.最大子序和

dp[i]表示到i位置为最右侧的最大子序和

所求为max(dp[i])

    int maxSubArray(vector<int>& nums) {int max_sum=INT_MIN;vector<int> dp(nums.size(),0);int tmp_sum;for(int i=0;i<nums.size();++i){int _max_sum=0;if(i==0){tmp_sum=nums[i];_max_sum=nums[i];}else{_max_sum=nums[i]+(tmp_sum>0?tmp_sum:0);tmp_sum=_max_sum;}if(max_sum<_max_sum)max_sum=_max_sum;}return max_sum;}

4.打家劫舍

dp[i]表示从左往右打劫到第i家时的最大获利

dp[1]=nums[1],dp[2]=max(nums[1],nums[2])

所求为max(dp[n],dp[n-1])

    int rob(vector<int>& nums) {if(nums.size()==0)return 0;else if(nums.size()==1)return nums.at(0);//初始化int a=nums[0];int b=max(nums[0],nums[1]);for(int i=2;i<nums.size();i++){int temp=b;b=max(a+nums[i],b);a=temp;}return b;}

LeetCode二刷记录【5】动态规划小结相关推荐

  1. 【LeetCode笔记】剑指 Offer 65. 不用加减乘除做加法(Java、位运算、二刷)

    文章目录 题目描述 思路 & 代码 二刷 题目描述 讲道理,感觉算有点难度的题目了= =,还是需要时不时看看. 思路 & 代码 正负数情况可以不考虑(补码) 核心:加法 = 进位和 + ...

  2. LeetCode部分习题解答记录-动态规划

    LeetCode部分习题解答记录-动态规划 动态规划 120.三角形最小路径和 方法:递归+记忆化 方法2:DP 64.最小路径和 方法1:递归 方法2:DP 从终点到起点,逐步更新 从起点到终点,逐 ...

  3. day46第九章动态规划(二刷)

    今日任务 139.单词拆分 关于多重背包,你该了解这些! 背包问题总结篇! 关于多重背包,力扣上没有相关的题目,所以今天大家的重点就是回顾一波自己做的背包题目吧. 139.单词拆分 题目链接: htt ...

  4. LeetCode刷题笔记-动态规划-day4

    文章目录 LeetCode刷题笔记-动态规划-day4 55. 跳跃游戏 1.题目 2.解题思路 3.代码 45. 跳跃游戏 II 1.题目 2.解题思路 3.代码 LeetCode刷题笔记-动态规划 ...

  5. 【LeetCode笔记】剑指 Offer 64. 求1 + 2 + ... + n (Java、限制语法、二刷)

    文章目录 题目描述 思路 && 代码 注释版代码(方便理解): 无注释版代码(方便背诵= =) 二刷 题目描述 鬼鬼,又到了我最喜欢的戴着脚镣跳舞环节. 讲道理,我觉得这类题应该整个归 ...

  6. 【LeetCode笔记】剑指 Offer 57- II. 和为 s 的连续正数序列(Java、滑动窗口、二刷)

    文章目录 题目描述 思路 & 代码 二刷 题目描述 花了不少时间来优化= =,很好的一道用来理解滑动窗口的题- 思路 & 代码 要点:为了 O(n) 复杂度,左右边界都只能往右走 滑动 ...

  7. 【LeetCode笔记】剑指 Offer 26-. 树的子结构 (Java、双重dfs、二刷)

    文章目录 题目描述 思路 & 代码 二刷 题目描述 思路很值得看的一道题,和之前路径总和 III的双递归思路.结构很像 思路 & 代码 isSubStructrue() 进行一个前序的 ...

  8. leetcode分类刷题笔记

    leetcode分类刷题笔记--基于python3 写在前面 1.做题如果实在想不出时间复杂度比较优的解法,可以先写出暴力解法,尝试在其基础上优化 2.排序.双指针.二分等--经常可以优化时间复杂度 ...

  9. 【Leetcode】 刷题之路1(python)

    leetcode 刷题之路1(python) 看到有大佬总结了一些相关题目,想着先刷一类. 1.两数之和 15.三数之和 16.最接近的三数之和 11.盛最多的水 18.四数之和 454.四数相加II ...

最新文章

  1. Java 8 (8) 默认方法
  2. vue项目按需引入element-ui,修改.babelrc文件之后报错
  3. shell开发跳板机功能脚本
  4. Java EE 课程作业(Fifth)-- XML:定义 用途 工作原理及未来xml
  5. 第五章:系统困境之 你的努力忽略了关键限制因素
  6. 在anaconda下创建我的第一个scrapy爬虫——爬取dmoz网站某一网址下的目录的链接名称以及链接地址...
  7. 如何使用alt键+数字键盘上的数字键打出特殊符号
  8. 高效办公,从几行批处理命令开始 | 原力计划
  9. 关于json返回日期格式化的解决方案
  10. lucene 分词实现
  11. 总是找不到电脑文件?学会这 3 个 Mac 搜索技巧,一秒就能找到
  12. LeetCode_859_python_亲密字符串
  13. android小游戏代码
  14. PS、AI、Sketch已经老了?这个新生代工具,大家都在偷学!
  15. 【i.MX6ULL】驱动开发12——电容触摸驱动实践(上)
  16. maven 详情查考 maven实战 许晓斌
  17. 程序员面试注意几点就够了
  18. android自定义秒表(精确到0.1秒,带计次功能)
  19. 浅谈企业数据安全风险
  20. 锐龙7 7840U参数 r7 7840U性能怎么样 r77840U相当于什么水平

热门文章

  1. matlab如何给页眉加图片,book类文档如何将页眉位于页面居中
  2. 服务器数据安全说明文件,safeshare能保护服务器文件在被用户浏览编辑过程中的数据安全(…...
  3. 玩转toB安全市场!火绒企业安全产品评测
  4. Zookeeper+Hadoop+Hbase+Hive+Kylin+Nginx集群搭建三(zookeeper篇)
  5. cmd 命令行选中 复制 粘贴
  6. 夜雨数竞笔记-极限(5)-夹逼准则
  7. 机器狗”病毒驱动部分逆向分析注释(C代码)
  8. 外汇交易的进场策略和出场策略
  9. 织梦dede 后台“标题织梦内容管理系统”修改方法
  10. 小散量化炒股记|要克服人性弱点?激活股票全自动化交易!