classSolution{public:introb(vector<int>&nums){if(nums.empty())return0;if(nums.size()==1)returnnums[0];// dp[i] := max money of robbing nums[0..i]vector<int>dp(nums.size());dp[0]=nums[0];dp[1]=max(nums[0],nums[1]);for(inti=2;i<nums.size();++i)dp[i]=max(dp[i-1],dp[i-2]+nums[i]);returndp.back();}};
classSolution{publicintrob(int[]nums){finalintn=nums.length;if(n==0)return0;if(n==1)returnnums[0];// dp[i] := max money of robbing nums[0..i]int[]dp=newint[n];dp[0]=nums[0];dp[1]=Math.max(nums[0],nums[1]);for(inti=2;i<n;++i)dp[i]=Math.max(dp[i-1],dp[i-2]+nums[i]);returndp[n-1];}}
classSolution:defrob(self,nums:List[int])->int:ifnotnums:return0iflen(nums)==1:returnnums[0]# dp[i]: = max money of robbing nums[0..i]dp=[0]*len(nums)dp[0]=nums[0]dp[1]=max(nums[0],nums[1])foriinrange(2,len(nums)):dp[i]=max(dp[i-1],dp[i-2]+nums[i])returndp[-1]