Leetcode 213. 打家劫舍 II

class Solution {
public:
    int rob(vector<int>& nums) {
        if(nums.empty()) return 0;
        int tou=0,butou=0,t,ans1,ans2;
        for(int i=1;i//1号不偷的情况,2号至最后一号都随意
            t=butou+nums[i],butou=max(tou,butou),tou=t;
        ans1=max(tou,butou);
        tou=butou=nums[0];
        for(int i=2;i<(int)nums.size()-1;++i)//1号偷的情况,2号和最后一号肯定不偷,其他随意
            t=butou+nums[i],butou=max(tou,butou),tou=t;
        ans2=max(tou,butou);
        return max(ans1,ans2);
    }
};

你可能感兴趣的:(Leetcode 213. 打家劫舍 II)