classSolution{public:intlargestSumAfterKNegations(vector<int>& nums,int k){sort(nums.begin(), nums.end(),[](int x,int y){returnabs(x)>abs(y);});int sum =0;for(int i=0; i<nums.size(); i++){if(i==nums.size()-1){if(k%2) sum -= nums[i];else sum += nums[i];}elseif(nums[i]<0){if(k!=0){
sum+=-nums[i];
k--;}else sum += nums[i];}elseif(nums[i]>=0) sum += nums[i];}return sum;}};
134. 加油站
classSolution{public:intcanCompleteCircuit(vector<int>& gas, vector<int>& cost){int cursum =0;int totalsum =0;int start =0;for(int i=0; i<gas.size(); i++){
totalsum += gas[i]- cost[i];
cursum += gas[i]- cost[i];if(cursum <0){
start = i+1;
cursum =0;}}if(totalsum <0)return-1;return start;}};
135. 分发糖果
classSolution{public:intcandy(vector<int>& ratings){
vector<int>candy(ratings.size(),1);for(int i =1; i<ratings.size(); i++){if(ratings[i]>ratings[i-1]) candy[i]= candy[i-1]+1;}for(int i = ratings.size()-2; i>=0; i--){if(ratings[i]>ratings[i+1]) candy[i]=max(candy[i], candy[i+1]+1);}int result =0;for(int i =0; i < candy.size(); i++) result += candy[i];return result;}};