Poison

977. Squares of a Sorted Array

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Solution {
public int[] sortedSquares(int[] nums) {
int[] res = new int[nums.length];

int resIndex = res.length - 1;
int i = 0, j = nums.length - 1;
while (i <= j) {
int leftSquare = nums[i] * nums[i];
int rightSquare = nums[j] * nums[j];

if (leftSquare > rightSquare) {
res[resIndex--] = leftSquare;
i++;
} else {
res[resIndex--] = rightSquare;
j--;
}
}

return res;
}
}

关键之处在于逆序处理。

Reference

977. Squares of a Sorted Array