135. Candy
https://leetcode.com/problems/candy/
/*
* @lc app=leetcode id=135 lang=cpp
*
* [135] Candy
*/
class Solution {
public:
int candy(vector<int>& ratings) {
const int N = ratings.size();
int res = 0;
vector<int> r(N);
for (int i = 0; i < N; ++i) {
if (i > 0 && (ratings[i] > ratings[i - 1])) r[i] = r[i - 1] + 1;
else r[i] = 1;
}
for (int i = N - 2; i >= 0; --i) {
if (ratings[i] > ratings[i + 1]) r[i] = max(r[i], r[i + 1] + 1);
}
for (const auto i : r) {
res += i;
}
return res;
}
};
Last updated