博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[leetcode] #213 House Robber II Medium (medium)
阅读量:4964 次
发布时间:2019-06-12

本文共 846 字,大约阅读时间需要 2 分钟。

比子母题多了一个条件:偷了0以后,第n-1间房子不能偷。

转换思路为求偷盗【0,n-1)之间,以及【1,n)之间的最大值。

用两个DP,分别保存偷不偷第0间房的情况。

Runtime: 0 ms, faster than 100.00%

class Solution{public:  int rob(vector
&nums) { int res = 0; int len = nums.size(); if (len <= 0) return res; if (len == 1) return nums[0]; if (len == 2) return (nums[0] > nums[1] ? nums[0] : nums[1]); int dp1[len]; int dp2[len]; // rob 0 dp1[0] = nums[0]; dp1[1] = max(nums[1], dp1[0]); for (int i = 2; i < len - 1; i++) { dp1[i] = max(dp1[i - 2] + nums[i], dp1[i - 1]); } //rob 1 dp2[0] = 0; dp2[1] = nums[1]; dp2[2] = max(nums[2], dp2[1]); for (int i = 3; i < len; i++) { dp2[i] = max(dp2[i - 2] + nums[i], dp2[i - 1]); } return max(dp1[len - 2], dp2[len - 1]); }};

 

转载于:https://www.cnblogs.com/ruoh3kou/p/9914028.html

你可能感兴趣的文章
oracle 使用job定时自动重置sequence
查看>>
在项目中加入其他样式
查看>>
OMAPL138学习----DSPLINK DEMO解析之SCALE
查看>>
restframework CBV试图的4种方式
查看>>
大图居中,以1920px为例
查看>>
[C陷阱和缺陷] 第7章 可移植性缺陷
查看>>
linux中configure文件默认执行结果所在位置
查看>>
Windows向Linux上传文件夹
查看>>
20180104-高级特性-Slice
查看>>
6个SQL Server 2005性能优化工具介绍
查看>>
nginx启动、关闭命令、重启nginx报错open() "/var/run/nginx/nginx.pid" failed
查看>>
BZOJ 3097 Hash Killer I
查看>>
UINavigationController的视图层理关系
查看>>
html阴影效果怎么做,css 内阴影怎么做
查看>>
宏观经济
查看>>
综合练习:词频统计
查看>>
BZOJ1026: [SCOI2009]windy数
查看>>
样板操作数
查看>>
64位UBUNTU下安装adobe reader后无法启动
查看>>
iTextSharp带中文转换出来的PDF文档显示乱码
查看>>