无思路:面试题 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);
    }
}

出处

   

posted @ 2020-11-06 22:15  acchris  阅读(84)  评论(0)    收藏  举报