leetcode17按摩师
class Solution {
public int massage(int[] nums) {
int n = nums.length;
if(n==0)
return 0;
if(n==1)
return nums[0];
int [][]dp = new int [n][2];
//表示数组中第一个数没有预约,即最大预约时间为0
dp[0][0] = 0;
//表示数组中第一个数有预约,即最大预约时间为nusm[0]
dp[0][1] = nums[0];
for(int i= 1;i<n;i++){
//dp[i][0]这种情况表示第i个数没有预约,分两种情况(1)前一个已经预约了,(2)前面一个还没预约
dp[i][0] = Math.max(dp[i-1][1],dp[i-1][0]);
//dp[i][1]这种情况表示第i个数有预约,那么前一个没有预约
dp[i][1] = dp[i-1][0] + nums[i];
}
return Math.max(dp[n-1][0],dp[n-1][1]);
}
}