import java.lang.Math;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型一维数组
* @return int整型
*/
public int rob (int[] nums) {
// 只有一个元素,就返回该元素的值
if(nums.length == 1){
return nums[0];
}
// 两个元素,就返回两元素中其中一个最大值
if(nums.length == 2){
return Math.max(nums[0],nums[1]);
}
// 定义一个数组,记录 n-1个值的和 和n-2个值的和
int[] maxVal = new int[nums.length];
// 初始化结果数组 第0 个元素和第 1个元素
maxVal[0] = nums[0];
maxVal[1] = Math.max(nums[0],nums[1]);
for(int i = 2;i<nums.length;i++){
maxVal[i] = Math.max(maxVal[i-1],maxVal[i-2]+nums[i]);
}
return maxVal[maxVal.length -1];
}
}
