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

打家劫舍I 打家劫舍II (leetcode)

个人主页:Lei宝啊 

愿所有美好如期而遇


打家劫舍Iicon-default.png?t=N7T8https://leetcode.cn/problems/Gu0c2T/打家劫舍IIicon-default.png?t=N7T8https://leetcode.cn/problems/PzWKhm/

状态转移方程就是这样的:

  • i位置选择偷f[i]:f[i] = g[i-1] + nums[i];
  • i位置选择不偷g[i]:g[i] = max(f[i-1], g[i-1]);  
class Solution 
{
public:int rob(vector<int>& nums) {int num = nums.size();if(num == 0) return 0;vector<int> g(num), f(num);f[0] = nums[0], g[0] = 0;for(int i=1; i<num; i++){f[i] = g[i-1] + nums[i];g[i] = max(f[i-1], g[i-1]);}return max(f[num-1], g[num-1]);}
};

 

class Solution 
{
public:int massage(int lhs, int rhs, vector<int>& nums) {if(lhs > rhs) return 0;vector<int> g(nums.size()), f(nums.size());//这里不需要初始化f[lhs],因为f[i]的状态转移方程不会越界//而上面的f[0]需要初始化是因为f[0]的状态转移方程会越界,所以从1开始for(int i=lhs; i<=rhs; i++){f[i] = g[i-1] + nums[i];g[i] = max(f[i-1], g[i-1]);}return max(f[rhs], g[rhs]);}int rob(vector<int>& nums) {int n = nums.size();//偷int lhs = massage(2, n-2, nums) + nums[0];//不偷int rhs = massage(1, n-1, nums);return max(lhs, rhs);}   
};

相关文章:

  • 使用cad绘制一个螺旋输送机
  • 【Unity】实现轮盘抽奖
  • 【数据结构】二叉树运用及相关例题
  • 计算机网络基础知识(持续更新中)
  • RestTemplate使用详解
  • 二叉树的顺序实现-堆
  • SwiftUI 5.0(iOS 17)进一步定制 TipKit 外观让撸码如虎添翼
  • Android UI控件详细解析(四)
  • 【新能源大巴BMS结构与乘用车的区别】
  • 每日一题——Python实现PAT甲级1041 Be Unique(举一反三+思想解读+逐步优化)
  • java使用资源过高排查
  • 解析Java中1000个常用类:Cloneable类,你学会了吗?
  • linux-gpio
  • 【代码随想录算法训练营第37期 day21 | LeetCode530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先】
  • Java集合【超详细】
  • CAP理论的例子讲解
  • gitlab-ci配置详解(一)
  • Javascript弹出层-初探
  • JDK9: 集成 Jshell 和 Maven 项目.
  • leetcode讲解--894. All Possible Full Binary Trees
  • SAP云平台里Global Account和Sub Account的关系
  • vue脚手架vue-cli
  • zookeeper系列(七)实战分布式命名服务
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 聊聊flink的BlobWriter
  • 判断客户端类型,Android,iOS,PC
  • 数据科学 第 3 章 11 字符串处理
  • 优化 Vue 项目编译文件大小
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • ​数据结构之初始二叉树(3)
  • #define与typedef区别
  • #HarmonyOS:Web组件的使用
  • (2)MFC+openGL单文档框架glFrame
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (PySpark)RDD实验实战——取一个数组的中间值
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (黑马点评)二、短信登录功能实现
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (六)Flink 窗口计算
  • (排序详解之 堆排序)
  • (区间dp) (经典例题) 石子合并
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (学习日记)2024.01.19
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (转载)利用webkit抓取动态网页和链接
  • .net 4.0发布后不能正常显示图片问题
  • .net core docker部署教程和细节问题
  • .net 怎么循环得到数组里的值_关于js数组
  • .net 重复调用webservice_Java RMI 远程调用详解,优劣势说明
  • .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化
  • .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例
  • .pop ----remove 删除
  • [].shift.call( arguments ) 和 [].slice.call( arguments )
  • [240527] 谷歌 CEO 承认 AI 编造虚假信息问题难解(此文使用 @gemini 命令二次创作)| ICQ 停止运作