有序数组的平方
双指针法:
class Solution {
public int[] sortedSquares(int[] nums) {
int k = nums.length - 1;
int [] arry = new int[nums.length];
int i = 0;
int j = nums.length - 1;
//有序数组,只不过负数的平方后可能会变成比中间值平方大,因此数组元素平方后,呈现中间小两边大,要求平方后数组有序,可使用双指针方法进行排序。
// i==j是为了处理最后两个元素的比较
while(i <= j) {
if (nums[i] * nums[i] > nums[j] * nums[j]) {
arry[k--] = nums[i] * nums[i];
i ++;
}else {
arry[k--] = nums[j] * nums[j];
j--;
}
}
return arry;
}
}