zoukankan      html  css  js  c++  java
  • 135. Candy

    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?

    public class Solution {
        public int candy(int[] ratings) {
            if(ratings.length == 0){
                return 0;
            }
            if(ratings.length == 1){
                return 1;
            }
            int sum = 0;
            int candy[] = new int[ratings.length];
            Arrays.fill(candy, 1);
            for(int i = 1; i < ratings.length; i++){
                if(ratings[i] > ratings[i - 1])
                    candy[i] = candy[i-1]+1;
            }
            for(int i = ratings.length - 1; i > 0; i--){
                if(ratings[i-1] > ratings[i])
                    candy[i-1] = Math.max(candy[i] + 1,candy[i-1]);
            }
            for(int i = 0; i < candy.length ; i ++){
                sum += candy[i];
            }
            return sum;
        }
    }
  • 相关阅读:
    第四次作业
    第三次作业
    作业,11
    作业,10
    作业,9
    作业,8
    作业,7
    作业,6
    作业,5
    作业,4
  • 原文地址:https://www.cnblogs.com/joannacode/p/5958892.html
Copyright © 2011-2022 走看看