classSolution:deftwoSum(self, nums: List[int], target:int)-> List[int]:
n =len(nums)
i =0
j = n-1while i<n and j>0:if nums[i]+nums[j]>target:
j -=1elif nums[i]+nums[j]<target:
i +=1else:return[nums[i],nums[j]]return[]
classSolution:deffindContinuousSequence(self, target:int)-> List[List[int]]:"""
使用滑动窗口
定义窗口的左边界left和窗口的右边界right,以及窗口和win_sum
如果窗口和小于target,就扩充右边界
如果窗口和等于target,存储结果,再扩大左边界,找下一个符合条件的结果
如果窗口和大于target,慢慢扩大左边界,因为扩大左边界的过程就是把窗口中左边小的值逐渐弹出的过程,慢慢让当前结果逼近target值
"""
left =1
right =2
win_sum =3
res =[]while left < right:if win_sum < target:
right +=1
win_sum += right
elif win_sum > target:# 缩小窗口内的和
win_sum -= left
left +=1else:# 扩大左窗口,找下一个解
res.append(list(range(left,right+1)))
win_sum -= left
left +=1return res
class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: n = len(nums) i = 0 j = n-1 while i<n and j>0: if nums[i]+nums[j]>target: j -= 1 elif nums.