Loading

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;
    }
}
posted @ 2020-10-24 11:42  上海井盖王  阅读(71)  评论(0)    收藏  举报