找出每个child分别相对于左边和右边的最长递增序列长度,取两者最大值就是他最后应该获得的糖数
class Solution {
public int candy(int[] ratings) {
int ans = 0;
int n = ratings.length;
int []left = new int[n];
int []right = new int[n];
left[0] = 1;
right[n-1] = 1;
for(int i=1;i<n;i++){
if(ratings[i-1]<ratings[i])
left[i] = left[i-1]+1;
else left[i] = 1;
}
for(int i=n-2;i>=0;i--){
if(ratings[i+1]<ratings[i])
right[i] = right[i+1]+1;
else right[i] = 1;
ans += Math.max(left[i],right[i]);
}
ans += left[n-1];
return ans;
}
}