无思路:面试题 17.16. 按摩师
总结分析
这道题当我看题目的时候,发现了可选可不选的时候,就想到了要用动态规划解决,奈何动态规划了解甚少。于是我尝试写了一下,发现只能通过第一个简单的测试案例。
最后看了官方题解,了解到动态规划一般分为两行,第一行是不选择当前值,第二行是选择。然后分别保存到两个变量值里。其实这题确实简单,但没接触过这种套路。没思路。
class Solution {
public int massage(int[] nums) {
int n = nums.length;
if(n == 0){
return 0;
}
int dp0 = 0,dp1 = nums[0];
for(int i = 1;i < n;++i){
int tdp0 = Math.max(dp0,dp1);
int tdp1 = nums[i] + dp0;
dp0 = tdp0;
dp1 = tdp1;
}
return Math.max(dp0,dp1);
}
}