//稍微简洁一点的写法classSolution{public:intlargestSumAfterKNegations(vector<int>& A,int K){sort(A.begin(), A.end(),[](int a,int b){returnabs(a)>abs(b);});//按绝对值从大到小排序for(int i =0; i < A.size();++i){//第一次遍历只修改负数if(A[i]<0&& K >0){
A[i]*=-1;--K;}}int res =0;for(int i =0; i < A.size()-1;++i){//先不管尾元素
res += A[i];}return res +=(K %2)?-1* A.back(): A.back();//尾元素最终是多少,其实取决于K剩余多少,因为剩下的K要全用在尾元素上}};