1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| class Solution { public int candy(int[] ratings) { int[] left = new int[ratings.length]; Arrays.fill(left, 1);
for (int i = 1; i < ratings.length; i++) { if (ratings[i] > ratings[i - 1]) { left[i] = left[i - 1] + 1; } }
int count = left[left.length - 1];
int[] right = new int[ratings.length]; Arrays.fill(right, 1);
for (int i = ratings.length - 2; i >= 0; i--) { if (ratings[i] > ratings[i + 1]) { right[i] = right[i + 1] + 1; }
count += Math.max(left[i], right[i]); }
return count; } }
|