leetcode 198:动态规划求小偷偷东西问题:

/*动态规划解小偷偷东西问题:给出一组数列,求能偷走的最大值,不能偷连续

的数,否则会除法报警{1,2,3,4,5},偷1+3+5=9.

*/

int rob(vector<int>& nums) {

    int n = nums.size();

    if(n==0)

        return 0;

    else if(n==1)

        return nums[0];

    else{

        vector<int>maxV(n,0);

        maxV[0] = nums[0];

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

        for(int i=2;i<n;i++){

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

        }

        return maxV[n-1];

    }

}

int main()

{

    vector<int>v={4,2,4,2,5,6};

    int res = rob(v);

    cout<<res;

    return 0;

}

    原文作者:动态规划
    原文地址: https://blog.csdn.net/u013994536/article/details/50889395
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞