#include <vector> class Solution { public: /** * pick candy * @param arr int整型vector the array * @return int整型 */ vector<int>nums; int candy(vector<int>& arr) { // write code here nums.resize(arr.size(),1);//默认全都给一个 for(int i=1;i<arr.size();i++){//从前往后 如果后面那个大的话,就在前一个基础上多分一个 if(arr[i]>arr[i-1]) nums[i]=nums[i-1]+1; } for(int i=arr.size()-1;i>0;i--){//从后往前 如果前面那个大的话 取本身和后一个基础上加1的较大值 if(arr[i-1]>arr[i]) nums[i-1]=max(nums[i-1],nums[i]+1); } int ans=0; for(int i=0;i<nums.size();i++){ ans+=nums[i]; } return ans; } };