def sorted_squares(nums):
    output = [0] * len(nums)
    left, right = 0, len(nums) - 1
    for write in range(len(nums) - 1, -1, -1):
        if nums[left] ** 2 > nums[right] ** 2:
            output[write] = nums[left] ** 2
            left += 1
        else:
            output[write] = nums[right] ** 2
            right -= 1
    return output
