LeetCode-Candy-分糖果-逻辑关系
https://oj.leetcode.com/problems/candy/
两遍扫面,第一遍保证ci与ci-1的关系能够保证满足分数大小。第二遍保证ci与ci+1关系能够保证。注意顺序一定要是比较当前与上次更新过的结果。不能由于本次的更新影响以后不会扫描的结果。
class Solution { public: int n,m; vector <int> r; vector <int> c; int candy(vector<int> &ratings) { n=ratings.size(); r=ratings; c.resize(n,1); for (int i=1;i<n;i++) { if(r[i]>r[i-1] && c[i]<=c[i-1]) c[i]=c[i-1]+1; } for (int i=n-2;i>=0;i--) { if(r[i]>r[i+1] && c[i]<=c[i+1]) c[i]=c[i+1]+1; } return accumulate(c.begin(),c.end(),0); } };