LeetCode213.House-Robber-II<打家劫舍II>

题目:

LeetCode213.House-Robber-II<打家劫舍II>_第1张图片

 

思路:

在版本一中增加了一个条件 那就是首尾相关联。那么只需要进行两次循环即可。

第一次是循环是偷第一家的 那么循环到n-1 截至 并且保存一个cmp

第二次循环是不偷第一家的 循环到n截至。然后比较cmp 与 dp [n] 的最大值即可。

LeetCode213.House-Robber-II<打家劫舍II>_第2张图片

 

代码是:

//code
 
class Solution {
public:
    int rob(vector& nums) {
        int n = nums.size()-1;
        if(n==1) return max(nums[0],nums[1]);
        if(n==0) return nums[0];
        int dp[1000]={0};
        dp[0]=nums[0];
        dp[1]=max(dp[0],nums[1]);
        for(int i=2;i

你可能感兴趣的:(算法,leetcode,数据结构,c++)