您的位置:首页 > 其它

【LeetCode从零单排】No.135Candy(双向动态规划)

2015-07-29 15:14 381 查看

1.题目

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?

2.代码

public class Solution {
public int candy(int[] ratings){
int size=ratings.length;
if(size<=1) return size;
int[] nums=new int[size];
for(int i=0;i<size;i++){
nums[i]=1;
}
for(int j=1;j<size;j++){
if(ratings[j]>ratings[j-1]) nums[j]=nums[j-1]+1;
}
for(int m=size-1;m>0;m--){
if(ratings[m-1]>ratings[m]){
nums[m-1]=Math.max(nums[m]+1,nums[m-1]);
}
}
int result=0;
for(int n=0;n<size;n++){
result+=nums
;
}

return result;
}
}

/********************************* 本文来自博客  “李博Garvin“* 转载请标明出处:http://blog.csdn.net/buptgshengod
******************************************/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: