May 23, 2022

977. Squares of a Sorted Array

977. Squares of a Sorted Array

Sol 1. Sorting

Time: O(nlogn), Space: O(logn)

class Solution {
    public int[] sortedSquares(int[] nums) {
        for (int i = 0; i < nums.length; i++) {
            nums[i] = nums[i] * nums[i];
        }
        Arrays.sort(nums);
        return nums;
    }
}

Sol 2. Two Pointers

Time: O(n), Space: O(n)

class Solution {
    public int[] sortedSquares(int[] nums) {
        int left = 0;
        int right = nums.length - 1;
        int n = nums.length;
        int[] res = new int[n];
        for (int i = n - 1; i >= 0; i--) {
            if (Math.abs(nums[left]) > Math.abs(nums[right])) {
                res[i] = nums[left] * nums[left];
                left ++;
            } else {
                res[i] = nums[right] * nums[right];
                right --;
            }
        }
        return res;
    }
}
comments powered by Disqus