//动态规划 class Solution { public int rob(int[] nums) { int pre = 0; int cur = 0; for(int i = 0;i < nums.length; i++){ // 循环开始时,cur 代表 dp[k - 1]; pre 代表 dp[k - 2]; // dp[k] = Math.max(dp[k -1],dp[k-2] + num[i]) int tmp = Math.max(pre + nums[i] , cur); pre = cur; cur = tmp; //循环结束后,cur代表dp[k],pre 代表 dp[k - 1]; } return cur; } }