码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode--Candy

时间:2014-06-22 13:19:27      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:class   blog   code   java   get   2014   

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 {
    /**This algorithm need O(n) time.<br>
     *@author Averill Zheng
     *@version 2014-06-21
     *@since JDK 1.7
     */
    public int candy(int[] ratings) {
        int length = ratings.length, temp = 1, max = 0;
		boolean decrease = true;
		int total = 0;
		if(length > 0){
			total = 1;
			for(int i = 1 ; i < length; ++i){
				if(ratings[i] > ratings[i - 1]){
					if(decrease){
						temp = 1;
						decrease = false;
					}
					total +=(++temp);
					max = temp;
				}
				else if(ratings[i] < ratings[i - 1]){
					if(!decrease){
						temp = 0;
						decrease = true;
					}
					total +=(++temp);
					if(max > 0 && temp >= max){
						total += (++temp - max);
						max = 0;
					}
				}
				else{
					decrease = true;
					total += 1;
					max = 0;
					temp = 1;
				}
			}
		}
		return total;    
    }
}

  

leetcode--Candy,布布扣,bubuko.com

leetcode--Candy

标签:class   blog   code   java   get   2014   

原文地址:http://www.cnblogs.com/averillzheng/p/3801659.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!