【文件属性】:
文件名称:leetcode209-Sliding-Window:滑动窗口
文件大小:1KB
文件格式:ZIP
更新时间:2021-07-06 20:15:55
系统开源
leetcode209
算法————滑动窗口
可以用来解决一些查找满足一定条件的连续区间的性质(长度等)的问题。由于区间连续,因此当区间发生变化时,它可以将嵌套的循环问题,转换为单循环问题,样便减少了重复计算,降低了时间复杂度。往往类似于“请找到满足xx的最x的区间(子串、子数组)的xx”这类问题都可以使用该方法进行解决。
例1.给定一个整数数组,计算长度为
'k'
的连续子数组的最大总和。
输入:a[]={100,200,700,400},k=2
输出:1100
解释:700+400=1100
暴力法:
C++:
double
func(vector&
a,int
k)
{
int
n=a.size();
int
sum=0;
int
maxsum=0;
for(int
i=0;i<n-1;i++)
{
for(int
j=i+1;j<n;j++)
{
sum=a[i]+a[j];
maxsum=max(sum,maxsum);
}
}
return
(double)maxsum;
}
Java:
时间复杂度:O(k*n)
滑动窗口法:
当k=2时,设置窗口大小为2,窗口里的值的和保
【文件预览】:
Sliding-Window-main
----README.md(1KB)