135. 分发糖果

题目链接:135. 分发糖果 - 力扣(LeetCode)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

解析:

image

两边都有link的,分两边分别看

class Solution {
public:
    int candy(vector<int>& ratings) {
        int n = ratings.size();
        vector<int> left(n);
        for (int i = 0; i < n; i++) {
            if (i > 0 && ratings[i] > ratings[i - 1]) {
                left[i] = left[i - 1] + 1;
            } else {
                left[i] = 1;
            }
        }
        int right = 0, ret = 0;
        for (int i = n - 1; i >= 0; i--) {
            if (i < n - 1 && ratings[i] > ratings[i + 1]) {
                right++;
            } else {
                right = 1;
            }
            ret += max(left[i], right);
        }
        return ret;
    }
};

 

posted @ 2025-10-24 21:01  WTSRUVF  阅读(2)  评论(0)    收藏  举报