c++
class Solution {
public:
int candy(vector<int>& ratings) {
vector<int> l(ratings.size()), r(ratings.size());
for (int i = 0, j = 1; i < ratings.size(); i++) {
if (i && ratings[i] > ratings[i - 1]) j += 1;
else j = 1;
l[i] = j;
}
for (int i = ratings.size() - 1, j = 1; i >= 0; i--) {
if (i < ratings.size() - 1 && ratings[i] > ratings[i + 1]) j += 1;
else j = 1;
r[i] = j;
}
int ans = 0;
for (int i = 0; i < ratings.size(); i++) ans += max(l[i], r[i]);
return ans;
}
};
js
var candy = function(ratings) {
var l = new Array(ratings.length).fill(0);
var r = new Array(ratings.length).fill(0);
for (var i = 0, j = 1; i < ratings.length; i++) {
if (i && ratings[i] > ratings[i - 1]) j += 1;
else j = 1;
l[i] = j;
}
for (var i = ratings.length - 1, j = 1; i >= 0; i--) {
if (i < ratings.length - 1 && ratings[i] > ratings[i + 1]) j += 1;
else j = 1;
r[i] = j;
}
var ans = 0;
for (var i = 0; i < ratings.length; i++) ans += Math.max(l[i], r[i]);
return ans;
};