[LeetCode]Candy
来源:互联网 发布:免费查海关数据的网站 编辑:程序博客网 时间:2024/05/16 23:02
class Solution {public: int candy(vector<int> &ratings) { // Note: The Solution object is instantiated only once and is reused by each test case. vector<int> candyNum(ratings.size(), 1); //1. forward int n = ratings.size(); int curCnt = 0; for(int i = 1; i < n; ++i) { if(ratings[i] > ratings[i-1]) curCnt++, candyNum[i] = curCnt+1; else curCnt = 0, candyNum[i] = curCnt+1; } //2. backward curCnt = 0; for(int i = n-2; i >= 0; --i) { if(ratings[i] > ratings[i+1]) curCnt++, candyNum[i] = max(candyNum[i], curCnt+1); else curCnt = 0, candyNum[i] = max(candyNum[i], curCnt+1); } //3. get sum int sum = 0; for(int i = 0; i < n; ++i) sum += candyNum[i]; return sum; }};