暴力求解法:
注意:需要確定范圍,比如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]