0
点赞
收藏
分享

微信扫一扫

135. Candy

49路末班车 2023-09-05 阅读 43


N

You are giving candies to these children subjected to the following requirements:

  • Each child must have at least one candy.
  • Children with a higher rating get more candies than their neighbors.

What is the minimum candies you must give?

class Solution {
public:
    int candy(vector<int>& ratings) {
        if(ratings.size() <= 1)
            return ratings.size();
        vector<int> candies(ratings.size(),1);
        for(int i = 1; i < ratings.size(); i ++){
            if(ratings[i] > ratings[i - 1])
                candies[i] = candies[i - 1] + 1;
        }
        
        for(int i = ratings.size() - 2; i >= 0; i --){
            if(ratings[i] > ratings[i + 1])
                candies[i] = max(candies[i], candies[i + 1] + 1);
        }
        
        int sum = 0;
        for(int i : candies)
            sum += i;
        return sum;
    }
};




举报

相关推荐

0 条评论