給定乙個按非遞減順序排序的整數陣列 a,返回每個數字的平方組成的新陣列,要求也按非遞減順序排序。
示例 1:
輸入:[-4,-1,0,3,10]
輸出:[0,1,9,16,100]
示例 2:
輸入:[-7,-3,2,3,11]
輸出:[4,9,9,49,121]
1 <= a.length <= 10000
-10000 <= a[i] <= 10000
a 已按非遞減順序排序。
最暴力的思路:做完平方後排序。
雙指標思路:每次把絕對值較大的那個指標指向的數字平方放在結果裡,left
和right
指標指向的是下乙個需要考慮的位置,所以迴圈退出的條件是left <= right
。時間、空間複雜度都是o(n
)o(n)
o(n)
class
solution
:def
sortedsquares
(self, a: list[
int])-
> list[
int]
: left, right =0,
len(a)-1
ans =
while left <= right:
ifabs
(a[left]
)<
abs(a[right]):
* a[right]
) right -=
1else
:* a[left]
) left +=
1return ans[::
-1]
leetcode 977 有序陣列的平方
給定乙個按非遞減順序排序的整數陣列a,返回每個數字的平方組成的新陣列,要求也按非遞減順序排序。示例 1 輸入 4,1,0,3,10 輸出 0,1,9,16,100 示例 2 輸入 7,3,2,3,11 輸出 4,9,9,49,121 1 a.length 10000 10000 a i 10000a...
LeetCode977 有序陣列的平方
給定乙個按非遞減順序排序的整數陣列a,返回每個數字的平方組成的新陣列,要求也按非遞減順序排序。示例 1 輸入 4,1,0,3,10 輸出 0,1,9,16,100 示例 2 輸入 7,3,2,3,11 輸出 4,9,9,49,121 1 a.length 10000 10000 a i 10000a...
LeetCode 977 有序陣列的平方
給定乙個按非遞減順序排序的整數陣列 a,返回每個數字的平方組成的新陣列,要求也按非遞減順序排序。示例1 輸入 4,1,0,3,10 輸出 0,1,9,16,100 示例2 輸入 7,3,2,3,11 輸出 4,9,9,49,121 判斷陣列中是否含有負數。若沒有負數,直接將每個元素平方之後賦值,返回...