知识点
题目
- 给你一个按 非递减顺序 排序的整数数组 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
本文介绍如何在保持非递减顺序的前提下,对有序整数数组进行平方操作。首先,通过暴力解法逐个计算并排序每个元素的平方,然后提出双指针策略,以提高插入操作的效率。两种方法对比,适用于不同场景的技术实现。
1989

被折叠的 条评论
为什么被折叠?



