怎么做集团网站,营销型网站设计特点,商业网站源码,插画培训班学费多少题目描述#xff1a; 解题思路#xff1a; 采用双指针的快慢指针。
图解 可以采用前缀和#xff0c;但会相较麻烦。
题解#xff1a;
#includebits/stdc.h
using namespace std;const int N 1e5 9;
int a[N];// 因为是连续区间#xff08;连续区间#xff1…题目描述 解题思路 采用双指针的快慢指针。
图解 可以采用前缀和但会相较麻烦。
题解
#includebits/stdc.h
using namespace std;const int N 1e5 9;
int a[N];// 因为是连续区间连续区间从数轴某一点开始差值相等的区间int main()
{ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);int n, s;cin n s;for(int i 1; i n; i)cin a[i];int sum 0;int ans n 1;int j 0; //以上三个初始化可以在for的int内for(int i 1; i n; i)//i为左指针{while(i j || (j 1 n sum s))sum a[j];//j为右指针。while条件分两种情况//1.ij表示区间不合法时。2.j1n表示可以继续加sums。if(sum s)ans min(ans, j - i 1);//min是取最小区间(每一次循环i,j都有可能改变)sum - a[i];}cout (ans n ? 0 : ans);//使用三目代替if使代码简洁。当ansn时代表区间不存在return 0;
}