classSolution{ publicint[] sortedSquares(int[] A) { int[] r = newint[A.length]; int index = 0; for(int i : A) { r[index] = i * i; index++; } Arrays.sort(r); return r; } }
双指针解法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
classSolution{ publicint[] sortedSquares(int[] A) { int[] r = newint[A.length]; int left = 0; int right = A.length - 1; int index = A.length -1; while (index >= 0){ if (Math.abs(A[left]) > Math.abs(A[right])) { r[index--] = A[left] * A[left]; left++; } else { r[index--] = A[right] * A[right]; right--; } } return r; } }