977.有序数组的平方. - 力扣(LeetCode)
#双指针
class Solution:
def sortedSquares(self, nums: List[int]) -> List[int]:
for i in range(len(nums)):
nums[i] = pow(nums[i],2)
mid = -1
left = 0
right = len(nums)-1
s = [0 for i in range(len(nums))]
while left <=right:
if nums[left] >= nums[right]:
s[mid] = nums[left]
mid -=1
left +=1
else:
s[mid] =nums[right]
mid -=1
right -=1
return s
209.长度最小的子数组. - 力扣(LeetCode)
#滑动窗口
class Solution:
def minSubArrayLen(self, target: int, nums: List[int]) -> int:
left = 0
right = 0
result = len(nums) +1
s = 0
while right < len(nums):
s +=nums[right]
right +=1
while s >=target:
result = min(result,right-left)
s -= nums[left]
left +=1
if result == len(nums) +1:
return 0
else:
return result
59.螺旋矩阵II. - 力扣(LeetCode)
#模拟
class Solution:
def generateMatrix(self, n: int) -> List[List[int]]:
l,r,t,b = 0,n-1,0,n-1
mat = [[0 for i in range(n)] for j in range(n)]
num = 1
tar = n*n
while num <= tar:
for i in range(l,r+1):
mat[t][i] = num
num +=1
t +=1
for i in range(t,b+1):
mat[i][r] = num
num +=1
r -=1
for i in range(r,l-1,-1):
mat[b][i] = num
num +=1
b -=1
for i in range(b,t-1,-1):
mat[i][l] = num
num +=1
l +=1
return mat