
image.png
解法
class Solution {
public int[] sortedSquares(int[] nums) {
int n = nums.length;
int[] answer = new int[n];
int pos = n - 1;
# 利用双指针,两边的平方肯定大于中间
for (int i = 0, j = n - 1; i <= j; ) {
if (nums[i] * nums[i] > nums[j] * nums[j]) {
answer[pos] = nums[i] * nums[i];
i++;
} else {
answer[pos] = nums[j] * nums[j];
j--;
}
pos--;
}
return answer;
}
}