classSolution: defsortedSquares(nums: list) -> list: new_nums = [] left = 0 right = int(len(nums)) - 1 while left <= right: if nums[left]**2 > nums[right]**2: new_nums.append(nums[left]**2) left += 1 else: new_nums.append(nums[right]**2) right -= 1 return new_nums[::-1]
時間複雜度: O(n) 空間複雜度: O(1)
難點
定義point邊界
輸出是由大至小(最後反轉)
最佳解法
此為較佳解法
其他解法
1 2 3 4 5 6
classSolution: defsortedSquares(self, nums: List[int]) -> List[int]: for i inrange(len(nums)): nums[i] = nums[i] * nums[i] nums.sort() return nums