给出一个数组,求出给数组的不连续相连数字的最大和
基础的dp题目
使用dp[][i]表示数组下标为i的最大不连续和
其中dp[0][i]表示不取下标i的值 dp[1][i]表示取下标i的值
可以得到状态转移方程
dp[0][i] = max(dp[0][i-1], dp[1][i-1])
dp[1][i] =dp[0][i-1] + nums[i]
public class Solution {
public int rob(int[] nums) {
int dp[][] = new int[2][nums.length + 1];
for(int i = 0 ; i < nums.length; ++i){
dp[0][i + 1] = Math.max(dp[0][i], dp[1][i]);
dp[1][i + 1] = dp[0][i] + nums[i];
}
return Math.max(dp[0][nums.length], dp[1][nums.length]);
}
}