class Solution { public int rob(int[] nums) { if(nums.length<=0 || nums ==null){ return 0; } if( nums.length ==1){ return nums[0]; } if(nums.length ==2){ return Max(nums[0],nums[1]); } int[] dp = new int[nums.length]; dp[0] = nums[0]; dp[1] = Max(nums[0],nums[1]); for(int i = 2; i<nums.length; i++){ dp[i] = Max((dp[i-2]+nums[i]),dp[i-1]); } return dp[nums.length-1]; } public int Max(int a, int b){ return a>b? a: b; } }
原文地址:https://www.cnblogs.com/codingyangmao/p/11287866.html
时间: 2024-11-13 08:07:14