feat(1019-squares-of-a-sorted-array): add py3 solution

This commit is contained in:
2022-04-03 20:34:00 +05:30
parent 2b889c6f89
commit eb41db0efa
3 changed files with 46 additions and 7 deletions

View File

@@ -0,0 +1,23 @@
Given an integer array `nums` sorted in **non-decreasing** order, return _an array of **the squares of each number** sorted in non-decreasing order_.
**Example 1:**
Input: nums = [-4,-1,0,3,10]
Output: [0,1,9,16,100]
Explanation: After squaring, the array becomes [16,1,0,9,100].
After sorting, it becomes [0,1,9,16,100].
**Example 2:**
Input: nums = [-7,-3,2,3,11]
Output: [4,9,9,49,121]
**Constraints:**
* `1 <= nums.length <= 104`
* `-104 <= nums[i] <= 104`
* `nums` is sorted in **non-decreasing** order.
**Follow up:** Squaring each element and sorting the new array is very trivial, could you find an `O(n)` solution using a different approach?

View File

@@ -0,0 +1,17 @@
class Solution:
def sortedSquares(self, nums: List[int]) -> List[int]:
left = 0
right = i = len(nums) - 1
result = [None] * len(nums)
while i >= 0:
if abs(nums[left]) > abs(nums[right]):
result[i] = nums[left] ** 2
left += 1
else:
result[i] = nums[right] ** 2
right -= 1
i -= 1
return result