1.House Robber
Input: nums = [1,2,3,1]
Output: 4
Explanation: Rob house 1 (money = 1) and then rob house 3 (money = 3).
Total amount you can rob = 1 + 3 = 4.Input: nums = [2,7,9,3,1]
Output: 12
Explanation: Rob house 1 (money = 2), rob house 3 (money = 9) and rob house 5 (money = 1).
Total amount you can rob = 2 + 9 + 1 = 12Maximum sum such that no two elements are adjacent
Algorithm:
class Solution {
public:
int rob(vector<int>& nums) {
if(nums.size()==0){return 0;}
int maxInc = nums[0];
int maxExc = 0;
for(int i=1;i<nums.size();i++){
int temp = maxInc;
maxInc = max(maxExc+nums[i],maxInc);
maxExc = temp;
}
return maxInc;
}
};House Robber II
All houses at this place are arranged in a circle. Max adjacent sum in a circular array
Last updated