977. 有序数组的平方
较易,直接看代码即可:
public int[] sortedSquares(int[] nums) {
for(int i=0;i<nums.length;i++){
nums[i]=Math.abs(nums[i]);
}
Arrays.sort(nums);
for(int i=0;i<nums.length;i++){
nums[i]=(int)Math.pow(nums[i],2);
}
return nums;
}
1005. K 次取反后最大化的数组和
public int largestSumAfterKNegations(int[] nums, int k) {
Arrays.sort(nums);
int sum = 0;
//处理负数和0的情况。
for (int i = 0; i < nums.length; i++) {
if (nums[i] < 0 && k > 0) {
nums[i] = Math.abs(nums[i]);
k--;
}
if (nums[i] == 0 && k > 0) {
k = 0;
}
if (k == 0) {
break;
}
}
boolean flag=false;
//处理全是正数的情况。
if(k!=0) {
flag = true;
}
while (flag){
if (k % 2 == 0) {
flag = false;
}else {
Arrays.sort(nums);
nums[0]=-(nums[0]);
flag=false;
}
}
//最后返回
for(int i=0;i<nums.length;i++){
sum+=nums[i];
}
return sum;
}