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

动态规划-打家劫舍、股票问题

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

1.dp[i]:考虑下标i(包括i)以内的房屋,最多可以偷窃的金额为dp[i]

2.dp[i] = max(dp[i - 2] + nums[i], dp[i - 1]);

3.初始化:

dp[0] = nums[0];
dp[1] = max(nums[0], nums[1]);

4.从前往后 

class Solution {public int rob(int[] nums) {int n = nums.length;if(nums == null || n  == 0) return 0;if(n==1) return nums[0];if(n==2) return Math.max(nums[0],nums[1]);int[] dp = new int[n];dp[0] = nums[0]; dp[1] = Math.max(dp[0],dp[1]);for(int i=2; i<n; i++){dp[i] = Math.max(dp[i-1], dp[i-2] + nums[i]);}return dp[n-1];}
}

 213. 打家劫舍 II

首尾相邻,故考虑首尾元素分三种情况:

  1. 考虑不包含首尾
  2. 考虑包含首元素,不包含尾
  3. 考虑包含尾,不包含首

第2、3都包含了1,所以只考虑2、3即可,即要首元素或是不要首元素两种情况

class Solution {public int[] dp;public int rob(int[] nums) {int n = nums.length;if(n==0) return 0;if(n==1) return nums[0];if(n==2) return Math.max(nums[0],nums[1]);dp = new int[n];return Math.max(rob(nums, 1,n-1), nums[0]+rob(nums,2,n-2));}public int rob(int[] nums, int l, int r){if(l>r) return 0;if(l==r) return nums[l];dp[l] = nums[l]; dp[l+1] = Math.max(dp[l],nums[l+1]);for(int i=l+2; i<=r; i++){dp[i] = Math.max(dp[i-1], dp[i-2] + nums[i]);}return dp[r];}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Python——变量和字符串以及转义字符常见问题总结
  • 机器学习第十二章-计算学习理论
  • 计算机网络速成(二)
  • Elasticsearch高阶查询
  • 【C++】String类:标准库介绍
  • HarmonyOS Next原生应用开发-从TS到ArkTS的适配规则(十六)
  • 使用Nexus3为containerd和docker配置镜像代理
  • 前端怎么用 EventSource并配置请求头及加参数(流式数据)
  • Hyperf 安装,使用,
  • 单一责任原则
  • CentOS7上安装RabbitMQ
  • 正则表达式入门:Python ‘ re ‘ 模块详解
  • C++内存泄漏--**关于“异常0xc0000005 读取的位置 0xDDDDDDDD时发生冲突”
  • Flask详细教程
  • <STC32G12K128入门第十步>USB HID键盘
  • 2019.2.20 c++ 知识梳理
  • co模块的前端实现
  • Git学习与使用心得(1)—— 初始化
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • JavaScript 基础知识 - 入门篇(一)
  • Java多线程(4):使用线程池执行定时任务
  • k个最大的数及变种小结
  • Laravel核心解读--Facades
  • node学习系列之简单文件上传
  • Ruby 2.x 源代码分析:扩展 概述
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 讲清楚之javascript作用域
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 每天一个设计模式之命令模式
  • 我建了一个叫Hello World的项目
  • 追踪解析 FutureTask 源码
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • linux 淘宝开源监控工具tsar
  • ​Benvista PhotoZoom Pro 9.0.4新功能介绍
  • #pragma data_seg 共享数据区(转)
  • (+4)2.2UML建模图
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (三)SvelteKit教程:layout 文件
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (收藏)Git和Repo扫盲——如何取得Android源代码
  • (四) Graphivz 颜色选择
  • .NET 5.0正式发布,有什么功能特性(翻译)
  • .net 8 发布了,试下微软最近强推的MAUI
  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划
  • .Net Core中的内存缓存实现——Redis及MemoryCache(2个可选)方案的实现
  • .NET 事件模型教程(二)
  • .NET/C# 使用反射注册事件
  • /3GB和/USERVA开关
  • [ vulhub漏洞复现篇 ] JBOSS AS 5.x/6.x反序列化远程代码执行漏洞CVE-2017-12149
  • [10] CUDA程序性能的提升 与 流
  • [20150629]简单的加密连接.txt
  • [2669]2-2 Time类的定义