977. Squares of a Sorted Array
997. Squares of a Sorted Array
題目的陣列有排序好,不過從陣列的兩側,我們只知道目前的最大值是多少,所以雖然題目問的是從小排到大,我們可以先把陣列求大排到小,再反序就好。
透過兩個指針可以判斷左邊或是右邊的元素要先放進來,我們要確定如果有負值的絕對值比較大,我們就先加入。
class Solution:
def sortedSquares(self, nums: List[int]) -> List[int]:
left = 0
right = len(nums) - 1
res = []
while left <= right:
if abs(nums[left]) > abs(nums[right]):
res.append(nums[left] ** 2)
left += 1
else:
res.append(nums[right] ** 2)
right -= 1
return res[::-1]
Last updated