应用题-数组专题-有序数组的平方( 时间复杂度O(n) )

管理员
```python class Solution: def sortedSquares(self, nums: List[int]) -> List[int]: # 数组本身是有序的 # 平方后影响数组顺序的是负数平方后可能变成较大的数 # 虽然有这样的影响 但是特性在于平方后最大的数 要么出现在最左边 要么出现在最右边 n = len( nums ) ans = [ 0 for _ in range( n ) ] # i从左往右 # j从右往左 i = 0 j = n - 1 k = n - 1 # k指向待插入元素位置 while i <= j: # 注意边界 此处取的是 i <= j if nums[ i ] * nums[ i ] > nums[ j ] * nums[ j ]: ans[ k ] = nums[ i ] * nums[ i ] i += 1 else: ans[ k ] = nums[ j ] * nums[ j ] j -= 1 k -= 1 return ans ```
评论 0

发表评论 取消回复

Shift+Enter 换行  ·  Enter 发送
还没有评论,来发表第一条吧