c语言怎么实现滑动窗口算法,【C语言】滑动窗口算法

本文介绍了滑动窗口算法的基本思想,并通过实例展示了如何使用C语言解决字符串子串问题和求解数组中和大于特定值的最小子数组长度问题。通过滑动窗口,可以在数组的合法区间内高效地进行计算。
摘要由CSDN通过智能技术生成

1.滑动窗口的思想:

它是一个运行在一个大数组上的子列表,该数组是一个底层元素集合。假设有数组 [a b c d e f g h ],一个大小为 3 的 滑动窗口 在其上滑动,则有:

[a b c]

[b c d]

[c d e]

[d e f]

[e f g]

[f g h]

一般情况下就是使用这个窗口在数组的 合法区间 内进行滑动,能够极大地提高算法地效率

2.滑动窗口的几个例题应用

1。

思考:

641b86b1db1d9824cc0968c8e5690d9a.png

滑动窗口算法可以解决字符串的子串中的几类应用问题

主要思想是:left与right同时从0开始变化,哈希表所记录的dict如果出现不止一次,那么就把左边界重新赋值到新出现的位置,右边界不管咋样都向后一个一个的移动,每次都记录下max,max为右减左再加一,因为从0开始。

图解:

4a1a035c9d3275375050b7a10c0ac29f.png

源代码:

#include

#include

int lengthOfLon

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值