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]);
 

            }
        }

    


posted @ 2021-03-10 19:36  11111ghm  阅读(24)  评论(0编辑  收藏  举报