JSFiddle - React, Tailwind, and code Playground
by sandfresh
JavaScript
var rob = function(nums) {
var maxS = new Array();
if(nums.length === 0) return 0;
if(nums.length === 1) return nums[0];
if(nums.length === 2) return Math.max(nums[1],nums[0]);
maxS.push(nums[0]);
maxS.push(Math.max(nums[0],nums[1]));
for(var i = 2 ; i < nums.length ; i++){
//最大金額 = Max(現在金額+前前一棟最大金額 , 前一棟最大金額)
maxS[i] = Math.max(nums[i] + maxS[i-2] , maxS[i-1]);
}
return maxS.pop();
};
console.log(rob([2,4,5,3]));