您的位置:首页 > 其它

LeetCode2.1.22 (Candy)

2015-08-22 17:10 387 查看
2.1.22 Candy

描述

ere 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 static int solution2_1_22(int[] rating){
if(rating.length==1)
return 1;
else{
int[] candy=new int[rating.length];
candy[0]=1;
for(int i=1;i<candy.length;i++){
if (rating[i]>rating[i-1])
candy[i]=candy[i-1]+1;
else
candy[i]=1;
}
for(int i=rating.length-2;i>=0;i--){
if((rating[i]>rating[i+1])&&(candy[i]<=candy[i+1]))//注意这里后一半的判断条件不能少
candy[i]=candy[i+1]+1;
}
int total=0;
for(int i=0;i<candy.length;i++){
total+=candy[i];
}
return total;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: