题目要求
代码实现
#includeclass Solution { public: int candy(vector & arr) { vector num(arr.size(), 1); int count = 0; //从左到右遍历,保证右边如果大于左边,右边糖果也多于左边 for(int i = 1; i < arr.size(); i++) { if(arr[i] > arr[i - 1]) { num[i] = num[i - 1] + 1; } } //从右往左遍历,保证左边如果大于右边,左边糖果也多于右边 for(int i = arr.size() - 1; i > 0; i--) { if(arr[i - 1] > arr[i]) { num[i - 1] = max(num[i] + 1, num[i - 1]); } } //计数 for(auto i : num) { count += i; } return count; } };



