滑动窗口不能算是一种算法,而是一种方法
目的是减少while循环
解决数组中的定长问题,当然不是定长也可以用

class Solution(object):
def minSubArrayLen(self, target, nums):
"""
:type target: int
:type nums: List[int]
:rtype: int
"""
# 1.暴力法
n = len(nums)
if nums is None or n == 0:
return 0
res = n + 1
for i in range(n):
total = 0
for j in range(i, n):
total += nums[j]
if total >= target:
res = min(res, j - i + 1)
break
return 0 if res == n+1 else res
# 2.滑动窗口
n = len(nums)
if not nums or n == 0:
return 0
res = n + 1
i = 0
j = 0
total = 0
while j < n:
total += nums[j]
while total >= target:
res = min(res, j-i+1)
total -= nums[i]
i += 1
j += 1
return 0 if res == n+1 else res
本文探讨了滑动窗口方法,一种常用的技术手段,用于在数组操作中减少冗余循环,特别针对定长子数组查找目标和的问题。通过实例展示了两种实现方式,暴力法和滑动窗口,以提高效率。
725

被折叠的 条评论
为什么被折叠?



