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

动态规划----3.打家劫舍

198. 打家劫舍 - 力扣(LeetCode)

/**

        maxRob[]: 记录结果,maxRob[i],代表偷到第i+1个房间能偷到的最大值

        只能间隔一个房间再偷(从0开始计算)

        偷到第0个房间: maxRob[0]: nums[0] (只有一个可偷)

        偷到第1个房间: maxRob[1]: Math.max(nums[0],nums[1]) (不能连着偷两个,必然是前两个中最大的) 要么偷0,要么偷1,偷最大的那个

        偷到第2个房间: maxRob[2]: Math.max(maxRob[0] + nums[2],maxRob[1]) 前两个房间中 若偷0,则maxRob[0] + nums[2](偷0可偷2) 若偷1,则maxRob[1](偷1不可偷2)

        偷到第3个房间: maxRob[3]: Math.max(maxRob[1] + nums[3],maxRob[2]) 前两个房间中 若偷1,则maxRob[1] + nums[3](偷1可偷3) 若偷2,则maxRob[2](偷2不可偷3)

        ...........

        偷到第i个房间  maxRob[i]: Math.max(maxRob[i - 2] + nums[i],maxRob[i - 1]) 若偷i - 2,则maxRob[i - 2] + nums[i](偷i - 2可偷i) 若偷i - 1,则maxRob[i - 1](偷i - 1不可偷i)

*/

class Solution {/**maxRob[]: 记录结果,maxRob[i],代表偷到第i+1个房间能偷到的最大值只能间隔一个房间再偷(从0开始计算)偷到第0个房间: maxRob[0]: nums[0] (只有一个可偷)偷到第1个房间: maxRob[1]: Math.max(nums[0],nums[1]) (不能连着偷两个,必然是前两个中最大的) 要么偷0,要么偷1,偷最大的那个偷到第2个房间: maxRob[2]: Math.max(maxRob[0] + nums[2],maxRob[1]) 前两个房间中 若偷0,则maxRob[0] + nums[2](偷0可偷2) 若偷1,则maxRob[1](偷1不可偷2)偷到第3个房间: maxRob[3]: Math.max(maxRob[1] + nums[3],maxRob[2]) 前两个房间中 若偷1,则maxRob[1] + nums[3](偷1可偷3) 若偷2,则maxRob[2](偷2不可偷3)...........偷到第i个房间  maxRob[i]: Math.max(maxRob[i - 2] + nums[i],maxRob[i - 1]) 若偷i - 2,则maxRob[i - 2] + nums[i](偷i - 2可偷i) 若偷i - 1,则maxRob[i - 1](偷i - 1不可偷i)*/public int rob(int[] nums) {int len = nums.length;int[] dp = new int[len];if(len == 1) {return nums[0];}//初始化dp[0] = nums[0];dp[1] = Math.max(nums[0], nums[1]);//开始递推for(int i = 2; i < len; i++) {dp[i] = Math.max(dp[i - 2] + nums[i], dp[i - 1]);}return dp[len - 1];}
}

http://www.dtcms.com/a/336977.html

相关文章:

  • EasyExcel篇
  • C语言篇:猜数字游戏的实现教程
  • 20250818 割点 割边 点双总结
  • 一个基于纯前端技术实现的五子棋游戏,无需后端服务,直接在浏览器中运行。
  • 数据挖掘 3.5 支持向量机——边界和正则化
  • 二分查找例题
  • 从基础到架构的六层知识体系
  • 进阶向:人物关系三元组,解锁人物关系网络的钥匙
  • 如何新建一个自己的虚拟环境
  • 有向无环图(Directed Acyclic Graph, DAG)介绍(环检测、DFS法、Kahn算法、)
  • 【Langchain系列三】GraphGPT——LangChain+NebulaGraph+llm构建智能图数据库问答系统
  • 15.三数之和
  • InfluxDB 开发工具链:IDE 插件与调试技巧(二)
  • 01.Linux小技巧
  • 从 UI 角度剖析蔬菜批发小程序的设计之道——仙盟创梦IDE
  • STRIDE威胁模型
  • IDE开发系列(1)基于QT的简易IDE框架设计
  • 【P38 6】OpenCV Python——图片的运算(算术运算、逻辑运算)加法add、subtract减法、乘法multiply、除法divide
  • 实践笔记-VSCode与IDE同步问题解决指南;程序总是进入中断服务程序。
  • 面试 TOP101 二叉树专题题解汇总Java版(BM23 —— BM41)
  • 深入解析StatefulSet与K8s服务管理
  • 集成电路学习:什么是Face Detection人脸检测
  • 多线程初阶-线程安全 (面试和工作的重点!!!)
  • Vue2篇——第六章 Vue 路由(VueRouter)全解析
  • Linux系统网络排查工具总结
  • org.apache.kafka.clients 和 org.springframework.kafka 的区别
  • kafka 发送消息有哪些模式?各自的应用场景是什么?
  • Elasticsearch全文检索中文分词:IK分词器详解与Docker环境集成
  • AI编程工具对决:Kilo vs Augment 开发Flutter俄罗斯方块游戏实战对比
  • 【AI论文】UI-Venus技术报告:借助强化微调(RFT)打造高性能用户界面(UI)代理