一、按摩师
题目描述:

题目分析:
- 状态表示
每个预约都只会有两种选择,即选或不选。因此我们可以用:
dp[i][0]表示不选择第 i 个预约时,最长的预约时长dp[i][1]表示选择第 i 个预约时,最长的预约时长
- 状态转移方程
对于 dp[i][1](选择第 i 个预约):
- 如果我们选择了第 i 个预约,那么第 i-1 次预约就一定不会选择,这时我们只需要知道不选第 i-1 次预约时的最长预约时长即可,即
dp[i-1][0]的值,再加上nums[i]即可。可得递推公式为:
dp[i][1] = dp[i-1][0] + nums[i]
对于 dp[i][0](不选择第 i 个预约):
- 如果我们不选择第 i 个预约,那么第 i-1 次预约可以被选择,当然也可以不选,这时我们只需要知道选或不选第 i-1 次预约时分别的最长预约时长即可,即
dp[i-1][0]与dp[i-1][1]的值,取这两个中的最大值即可。可得递推公式为:
dp[i][0] = Math.max(dp[i-1][0], dp[i-1][1])


