Leetcode198. House Robber
经典dp
class Solution { public int rob(int[] nums) { if(nums==null||nums.length<1) return 0; if(nums.length==1) return nums[0]; int[] dp = new int[nums.length]; int max = nums[0]; dp[0]=nums[0]; dp[1]=nums[1]; if(dp[1]>max) max=dp[1]; if(nums.length==2) return Math.max(dp[0],dp[1]); dp[2]=dp[0]+nums[2]; if(dp[2]>max) max=dp[2]; for(int i=3;i<nums.length;i++){ dp[i]=Math.max(dp[i-2],dp[i-3])+nums[i]; if(dp[i]>max) max=dp[i]; } return max; } }
Runtime: 2 ms, faster than 100.00% of Java online submissions for House Robber.
Memory Usage: 36.8 MB, less than 42.45% of Java online submissions for House Robber

浙公网安备 33010602011771号