leetcode209算法————滑动窗口可以用来解决一些查找满足一定条件的连续区间的性质(长度等)的问题。由于区间连续,因此当区间发生变化时,它可以将嵌套的循环问题,转换为单循环问题,从而减少了重复计算,降低了时间复杂度。类似于“请找到满足xx的最x的区间(子串、子数组)的xx”这类问题都可以使用该方法进行解决。例1. 给定一个整数数组,计算长度为 'k' 的连续子数组的最大总和。输入:a[]={100,200,700,400}
,k=2
。输出:1100
。解释:700+400=1100
。暴力法: C++:
```cpp
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,窗口里的值的和保
暂无评论