Code Submission:


class Solution:

    def sortedSquares(self, A: List[int]) -> List[int]:
        # Square each number in list
        result = [i ** 2 for i in A]
        return self.mergesort(result)


    def merge(self, left, right):

        res = []
        i = 0
        j = 0
        while i < len(left) and j < len(right):
            if left[i] <= right[j]:
                res.append(left[i])
                i += 1
            else:
                res.append(right[j])
                j += 1

        res += left[i:]
        res += right[j:]
        return res

    def mergesort(self, arr):

        if(len(arr) <= 1): return arr

        mid = len(arr) // 2
        left = self.mergesort(arr[:mid])
        right = self.mergesort(arr[mid:])
        return self.merge(left, right)

Built With

Share this project:

Updates