977. Squares of a Sorted Array - Easy

前往題目

想法

  • 暴力解也只要n + nlognhe

思路

  1. 雙指針,從大排到小,因為這樣左右指針可以在最左和最右

Code

class Solution {
    public int[] sortedSquares(int[] nums) {
        int[] res = new int[nums.length];
        
        int l = 0, r = nums.length - 1;
        int resP = res.length - 1;
        
        // Two pointers
        while (l <= r) {
            int lSquare = nums[l] * nums[l];
            int rSquare = nums[r] * nums[r];

            // left pointer is larger
            if (lSquare >= rSquare) {
                res[resP] = lSquare;
                ++l;
            } else if (lSquare < rSquare) {
                res[resP] = rSquare;
                --r;
            }
            // Move the pointer
            --resP;
        }
        return res;
    }
}

977. Squares of a Sorted Array - Easy
https://f88083.github.io/2024/09/25/977-Squares-of-a-Sorted-Array-Easy/
作者
Simon Lai
發布於
2024年9月25日
許可協議