Steward
分享是一種喜悅、更是一種幸福
程式語言 - LeetCode - C++ - 213. House Robber II
參考資訊:
https://www.cnblogs.com/grandyang/p/4518674.html
題目:

解答:
class Solution {
public:
int rob(vector<int>& nums) {
if (nums.size() <= 1) {
return nums.empty() ? 0 : nums[0];
}
auto rob = [&](int l, int r) {
int odd = 0;
int even = 0;
for (int i = l; i < r; ++i) {
if (i % 2 == 0) {
even = max(even + nums[i], odd);
}
else {
odd = max(odd + nums[i], even);
}
}
return max(even, odd);
};
return max(rob(0, nums.size() - 1), rob(1, nums.size()));
}
};