暴力求解法:
注意:需要确定范围,比如nums.sort()是在for循环之外,根据函数的功能来确定
return返回的是nums,而不是nums[i]因为返回的是整个数组
class Solution(object):def sortedSquares(self, nums):for i in range (len(nums)):nums[i]=nums[i]*nums[i]nums.sort()return nums
python中切片的语法规则
#list[起始索引:结束索引]切片时包含起始索引位置的元素,但不包含结束索引位置的元素
# 索引为 0表示第一个,1表示第二个,-1表示最后一个,-2表示倒数第二个# list[-1]:返回最后一个数据
# list[:1]:返回0到1的数据,故返回第一个数据
# list[1:]:返回从1到0的数据,故返回第二个到最后一个的数据(不包含结束索引位置0)
# list[-1:]:返回从-1到0的数据,故返回最后一个数据
# list[:-1]:返回从0到-1的数据,故返回第一个到倒数第二个的数据(不包含结束索引位置-1)
# list[::1]:表示步长为1,步长大于0时,返回序列为原顺序;。
# list[::-1]: 表示从右往左以步长为1进行切片。步长小于0时,返回序列为倒序
# list[::2]: 表示从左往右步长为2进行切片list = [1, 2, 3, 4, 5]
print(list[-1]) # 5
print(list[:1]) # [1]
print(list[1:]) # [2, 3, 4, 5]
print(list[-1:]) # [5]
print(list[:-1]) # [1, 2, 3, 4]
print(list[::1]) # [1, 2, 3, 4, 5]
print(list[::-1]) # [5, 4, 3, 2, 1]
print(list[::2]) # [1, 3, 5]
双指针+反转列表法:
注意:创建空列表的语法格式,以及abs表示绝对值;写完之后可以带入数组挨着挨着验证
class Solution():def sortedSquares(self,nums):left=0right=len(nums)-1new_list=[]while left<=right:if abs(nums[left])<=abs(nums[right]):new_list.append(nums[right]**2)right-=1else:new_list.append(nums[left]**2)left+=1return new_list[::-1]