题目链接
取下标不相邻的数字。
class Solution {// 迭代 。。 优化,可以将两个数字来存,降低空间复杂度public int rob(int[] nums) {if(nums.length == 1) return nums[0];int[] arr = new int[nums.length];arr[0] = nums[0];arr[1] = Math.max(nums[0],nums[1]);for(int i = 2; i < nums.length; i++) {arr[i] = Math.max(arr[i-1], arr[i-2]+nums[i]);}return arr[nums.length-1];}// 递归。超时public int rob(int[] nums) {return resursion(nums.length-1, nums);}public int resursion(int index, int[] arr) {if(index < 0) return 0;if(index == 0) return arr[0];return Math.max(resursion(index-1,arr), resursion(index-2,arr)+arr[index]);}}
