Rob houses on a street. Adjacent houses have connected alarms — can't rob two adjacent houses. Return the maximum money you can rob.
At each house, decide: Rob (get nums[i] + best from 2 houses ago) or Skip (keep best from previous). Two variables suffice since we only need the previous two dp values.