977. [数组][双指针]有序数组的平方
977. 有序数组的平方
方法一:快速排序
// 执行用时: 2 ms , 在所有 Java 提交中击败了 66.81% 的用户
// 内存消耗: 40.3 MB , 在所有 Java 提交中击败了 88.74% 的用户
class Solution {
public int[] sortedSquares(int[] A) {
for(int i = 0; i < A.length; i++){
A[i] *= A[i];
}
Arrays.sort(A);
return A;
}
}
方法二:双指针
// 执行耗时:1 ms,击败了100.00% 的Java用户
// 内存消耗:40.5 MB,击败了66.05% 的Java用户
class Solution {
public int[] sortedSquares(int[] A) {
int i = A.length - 1, left = 0, right = i;
int[] ans = new int[right+1];
while (left <= right){
if (A[left] * A[left] > A[right] * A[right]){
ans[i] = A[left] * A[left];
i--;
left++;
} else {
ans[i] = A[right] * A[right];
i--;
right--;
}
}
return ans;
}
}

浙公网安备 33010602011771号