当前位置: 首页 > news >正文

代码随想录算法训练营第三十九天-动态规划-198. 打家劫舍

  • 动规五部曲
    • dp[i]表示在下标为i的房间偷或不偷与前面所偷之和所能获得的最大价值
    • 递推公式:dp[i] = std::max(dp[i - 2] + nums[i], dp[i - 1])
    • 初始化:要给dp[0]dp[1]来给定初始值,因为递推公式有-1与-2。dp[0] = nums[0], dp[1] = std::max(nums[0], nums[1]);
      • 其它下标值,初始成任意值都可以,因为其值是由前面元素推导出来的
    • 遍历顺序:从2开始到最后一个房间的下标
    • 打印
class Solution {
public:int rob(vector<int>& nums) {int dp[nums.size()];memset(dp, 0, sizeof(dp));if (nums.size() == 1) return nums.at(0);dp[0] = nums.at(0);dp[1] = std::max(dp[0], nums.at(1));for (int i = 2; i < nums.size(); i++) {dp[i] = std::max(dp[i - 1], dp[i - 2] + nums.at(i));}return dp[nums.size() - 1];}
};
  • 汇总
http://www.lryc.cn/news/528842.html

相关文章:

  • CF1098F Ж-function
  • Python 函数魔法书:基础、范例、避坑、测验与项目实战
  • vim交换文件的作用
  • [NOI1995] 石子合并
  • 真正的智能与那只蝴蝶
  • C++小病毒-1.0勒索(更新次数:2)
  • Node.js 的底层原理
  • 基于Django的豆瓣影视剧推荐系统的设计与实现
  • P10638 BZOJ4355 Play with sequence Solution
  • MySQL误删数据怎么办?
  • 项目测试之MockMvc
  • Unbutu虚拟机+eclipse+CDT编译调试环境搭建
  • 时间轮:XXL-JOB 高效、精准定时任务调度实现思路分析
  • CTF-web: Python YAML反序列化利用
  • 代码随想录算法训练营第三十八天-动态规划-完全背包-139.单词拆分
  • ML基础-Jupyter notebook中的魔法命令
  • Zookeeper入门部署(单点与集群)
  • Kafa分区策略实现
  • Pyside/Pyqt中QWebEngineView和QWebEnginePage的区别
  • Kafka的内部通信协议
  • 强大到工业层面的软件
  • 数据分析和AI丨应对AI实施挑战,工程领域AI应用的五大方法
  • 54. UDP协议
  • AJAX笔记入门篇
  • 深入解析Java集合框架:春招面试要点
  • 【Elasticsearch】Elasticsearch的查询
  • STM32 PWM驱动直流电机
  • 系统思考—心智模式
  • JavaScript_02 表单
  • 【Qt】06-对话框