Houses along a street hold nums[i] money. You cannot rob two adjacent houses. Return the most you can rob.
Keep only the best totals for i−1 houses (prev1) and i−2 houses (prev2).
1function rob(nums: number[]): number {2let prev2 = 0, prev1 = 0;3for (const x of nums) {4const cur = Math.max(prev1, prev2 + x);5prev2 = prev1;6prev1 = cur;7}8return prev1;9}
Nothing robbed yet.
Space: play/pause · ←/→: step