LC 0977 [E] Squares of a Sorted Array - ALawliet/algorithms GitHub Wiki

class Solution:
    def sortedSquares(self, A: List[int]) -> List[int]:
        n  = len(A)
        squares = [0 for x in range(n)]
        i = n - 1
        l, r = 0, n-1
        while l <= r:
            left = A[l] ** 2
            right = A[r] ** 2
            if left > right:
                squares[i] = left
                l += 1
            else:
                squares[i] = right
                r -= 1
            i -= 1
        return squares