主题思想: 正向来一次,反向来一次。
AC 代码:
class Solution {
public int candy(int[] ratings) {
if(ratings==null)return 0;
if(ratings.length<=1) return ratings.length;
int n=ratings.length;
int [] nums=new int[n];
Arrays.fill(nums,1);
for(int i=1;i<n;i++){
if(ratings[i]>ratings[i-1])nums[i]=nums[i-1]+1;
}
for(int i=n-2;i>=0;i--){
if(ratings[i]>ratings[i+1])nums[i]=Math.max(nums[i],nums[i+1]+1);
}
int total=0;
for(int i:nums)total+=i;
return total;
}
}