leetcode[135]Candy

2776 단어 LeetCode
There are N children standing in a line. Each child is assigned a rating value.
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.empty())return 0;
    
            int n=ratings.size();
    
            int *A=new int[n];
    
            A[0]=1;
    
            for(int i=1;i<n;i++)
    
            {
    
                if(ratings[i]>ratings[i-1])A[i]=A[i-1]+1;
    
                else A[i]=1;
    
            }
    
            int res=A[n-1];
    
            for(int i=n-2;i>=0;i--)
    
            {
    
                if(ratings[i]>ratings[i+1])A[i]=A[i]>A[i+1]+1?A[i]:A[i+1]+1;
    
                res+=A[i];
    
            }
    
            return res;
    
        }
    
    };

    좋은 웹페이지 즐겨찾기