int rob(vector<int> &nums) {
if (nums.empty())
return 0;
if (nums.size() == 1)
return nums[0];
if (nums.size() == 2)
return max(nums[0], nums[1]);
//这里要记录arr[i-1]和arr[i-2]
//不偷第i间房 偷第i间房
int first = nums[0], second = max(nums[1], nums[0]);
int now;
//从第三间房开始
for (int i = 2; i < nums.size(); i++) {
now = max(first + nums[i], second);
first=second;
second=now;
}
return second;
}
198. 打家劫舍
最新推荐文章于 2022-03-23 17:26:29 发布