135. 分发糖果

Posted yonezu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了135. 分发糖果相关的知识,希望对你有一定的参考价值。

技术图片

 

 

class Solution {
    public int candy(int[] ratings) {
        int n = ratings.length;
        int[] arr = new int[n];
        Arrays.fill(arr,1); // 先每人分一个
        for(int i = 1; i < n; i++) { // 从左到右分当前分数大于前一个就变为前一个加一
            if(ratings[i] > ratings[i-1]) arr[i] = arr[i-1] + 1;
        }
        int res = arr[n-1];
        for(int i = n - 2; i >= 0; i--) {// 从右到左分,当前分数大于后一个,且当前拿到的糖比后一个少就变为后一个加一
            if(ratings[i] > ratings[i+1] && arr[i] <= arr[i+1]) arr[i] = arr[i+1] + 1;
            res += arr[i];
        }   
        return res;
    }
}

 

以上是关于135. 分发糖果的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode第135题—分发糖果—Python实现

LeetCode135.分发糖果

[LeetCode] 135. 分发糖果

Leetcode No.135 分发糖果(贪心)

Leetcode No.135 分发糖果(贪心)

135. 分发糖果(困难)-贪心