知识点
题目
- 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。
解法①:
暴力解法
class Solution:
def sortedSquares(self, nums: List[int]) -> List[int]:
newarr=[]
for i in nums:
s=i*i
newarr.append(s)
newarr.sort()
return newarr
解法②:
双指针
class Solution:
def sortedSquares(self, nums: List[int]) -> List[int]:
l,r=0,len(nums)-1
newnums=[]
#newnums=[0]*len(nums),这样就可以用下标指明插入位置
while(l<=r):
left=nums[l]*nums[l]
right=nums[r]*nums[r]
if left<right:
newnums.insert(0,right)
r-=1
else:
newnums.insert(0,left)
l+=1
return newnums