412. Candy

Code(Language:C++)
class Solution {
public:
    /**
     * @param ratings: Children's ratings
     * @return: the minimum candies you must give
     */
    int candy(vector<int> &ratings) {
        // write your code here
        const int size = ratings.size();
        if(size == 0){
            return 0; 
        }
        vector<int> candy(size, 1);
        for(int i = 1; i < size; i++){
            if(ratings[i] > ratings[i - 1]){
                candy[i] = candy[i - 1] + 1;
            }
        }
        int res = candy[size - 1]; 
        for(int i = size - 1; i > 0; i--){
            if(ratings[i - 1] > ratings[i] && candy[i - 1] <= candy[i]){
                candy[i - 1] = candy[i] + 1; 
            }
            res += candy[i - 1]; 
        }
        return res; 
    }
};

Comments

Popular posts from this blog

算法的比较