python 滑动窗口算法
时间: 2023-11-10 10:04:25 浏览: 96
滑动窗口算法
5星 · 资源好评率100%
滑动窗口算法是一种常用的算法,可以用来解决一些字符串和数组相关的问题。其基本思想是维护一个窗口,通过移动窗口来寻找符合条件的子串或子数组。
具体来说,滑动窗口算法通常包含以下几个步骤:
1. 初始化窗口的起始位置和结束位置;
2. 移动窗口的结束位置,直到找到符合条件的子串或子数组;
3. 移动窗口的起始位置,缩小窗口范围,直到不符合条件为止;
4. 重复步骤2和3,直到遍历完整个字符串或数组。
下面是一个示例代码,用来寻找一个数组中长度为k的连续子数组的最大值:
```python
def max_subarray(nums, k):
n = len(nums)
if n < k:
return None
max_sum = sum(nums[:k])
window_sum = max_sum
for i in range(k, n):
window_sum += nums[i] - nums[i-k]
max_sum = max(max_sum, window_sum)
return max_sum
```
在这个代码中,我们维护了一个长度为k的窗口,每次移动窗口时,只需要加上新的元素,减去旧的元素即可。同时,我们用一个变量max_sum来记录当前找到的最大值。
阅读全文