在解决几何问题时,我遇到了一种称为滑动窗口算法的方法.
无法真正找到任何研究材料/细节.
算法是什么?
我试图理解两指针算法的方法,所以我一直在阅读本文
所以这是问题。假设我们有N个元素组成的数组。并且我们想要在该数组中找到最大的连续元素序列,且其总和小于或等于M。我们必须返回元素序列求和的值。
因此,假设我们有一个元素数组[2、1、3、4、5],我们的M为12。我们将返回12,因为3、4和5的总和为12。这就是本文的方法
l,分别r表示连续子数组的startIndex和endIndex,它们都位于数组的尖端。r,sum[l,r] <= M一旦到达这个阶段,我们别无选择,只能移动左指针并开始减少总和,直到我们可以扩展右指针的情况为止。再次。这是C ++代码。
#include <bits/stdc++.h>
#define lli long long
#define MAX 1000005
using namespace std;
lli A[MAX];
int main()
{
int n;
lli sum = 0;
cin >> n;
for ( int i = 0; i < n; i++ ) cin >> A[i];
int l = 0, r = 0;
lli ans = 0;
while ( l < n ) {
while ( r …Run Code Online (Sandbox Code Playgroud)