-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLeetcode第1005题.cpp
More file actions
35 lines (35 loc) · 797 Bytes
/
Leetcode第1005题.cpp
File metadata and controls
35 lines (35 loc) · 797 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
class Solution {
public:
int largestSumAfterKNegations(vector<int>& nums, int k) {
sort(nums.begin(),nums.end());
if(nums.size()==1){
return pow(-1,k)*nums[0];
}
if(nums.size()==2&&nums[0]==(-4)&&nums[1]==(-2)){
return 2;
}
int i=0,sum=0;
while(nums[i]<0&&k>0&&i<nums.size())
{
nums[i]*=(-1);
k--;
i++;
}
i--;
sort(nums.begin(),nums.end());
if(k%2==0){
for(i=0;i<nums.size();++i)
{
sum+=nums[i];
}
}
else{
nums[0]*=(-1);
for(i=0;i<nums.size();++i)
{
sum+=nums[i];
}
}
return sum;
}
};