LeetCode198. House Robber

来源:互联网 发布:秦美人四灵进阶数据 编辑:程序博客网 时间:2024/06/10 05:49

题目链接:

https://leetcode.com/problems/house-robber/

题目描述:

题目设计了一个抢劫犯的情景,其实就是求数组中不相邻数据进行组合得到的最大值。

思路:

dp[i]为以nums[i]为结尾的序列中不相邻数据组合得到的最大值。
当前位置i选不选由i-2,和i-1位置决定。
dp[i]=max(dp[i-2]+nums[i],dp[i-1]);

代码:

class Solution {public:    int rob(vector<int>& nums) {        int len=nums.size();        if(len==0){            return 0;        }        int* dp=new int[len];        if(len>0){            dp[0]=nums[0];            if(len>1){                dp[1]=max(dp[0],nums[1]);            }        }        for(int i=2;i<len;i++){            dp[i]=max(dp[i-2]+nums[i],dp[i-1]);        }        return dp[len-1];    }};
0 0
原创粉丝点击