1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| 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; } }
|
关键之处在于逆序处理。
References
977. Squares of a Sorted Array