复习
704. 二分查找 - 力扣(LeetCode)
class Solution:
def search(self, nums: List[int], target: int) -> int:
left = 0
right = len(nums)
while right > left:
if nums[(right+left) // 2] >target:
right = (right+left) // 2
elif nums[(right+left) // 2] <target:
left = (right+left) // 2 + 1
else:
return (right+left) // 2
return -1
class Solution:
def search(self, nums: List[int], target: int) -> int:
left = 0
right = len(nums) - 1
while right >= left:
if nums[(right+left) // 2] >target:
right = (right+left) // 2 - 1
elif nums[(right+left) // 2] <target:
left = (right+left) // 2 + 1
else:
return (right+left) // 2
return -1
27. 移除元素 - 力扣(LeetCode)
class Solution:
def removeElement(self, nums: List[int], val: int) -> int:
low = 0
for fast in range(len(nums)):
if nums[fast] != val:
nums[low] = nums[fast]
low += 1
return low
977. 有序数组的平方 - 力扣(LeetCode)
class Solution:
def sortedSquares(self, nums: List[int]) -> List[int]:
left = 0
right = len(nums) - 1
index = right
result = [0] * len(nums)
count = 0
while left <= right:
if nums[left] ** 2 <= nums[right] ** 2:
result[index] = nums[right] ** 2
right -= 1
else:
result[index] = nums[left] ** 2
left += 1
index -= 1
return result
209. 长度最小的子数组 - 力扣(LeetCode)
class Solution:
def minSubArrayLen(self, target: int, nums: List[int]) -> int:
left = 0
right = 0
lenth = len(nums)
result = len(nums) + 1
value = 0
while right < lenth:
value += nums[right]
while value >= target:
result = min(result,right - left + 1)
value -= nums[left]
left+=1
right += 1
if result != len(nums) + 1:
return result
return 0
59. 螺旋矩阵 II - 力扣(LeetCode)
class Solution:
def generateMatrix(self, n: int) -> List[List[int]]:
loop = n // 2
mid = n // 2
startx = 0
starty = 0
count = 1
result = [[0]*n for _ in range(n)]
for r in range(1,loop+1):
for j in range(startx,n - r):
result[startx][j] = count
count += 1
for j in range(starty,n-r):
result[j][n-r] = count
count += 1
for j in range(n-r,startx,-1):
result[n-r][j] = count
count += 1
for j in range(n-r,starty,-1):
result[j][starty] = count
count += 1
startx += 1
starty += 1
if n % 2 != 0:
result[mid][mid] = count
return result
新学