标签: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:
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
标签:class blog code java get 2014
原文地址:http://www.cnblogs.com/averillzheng/p/3801659.html