https://www.cnblogs.com/opbnbjs/p/9503797.html
void solve()
{
ans=100000+44;
int L=1,R=1,sum=0,lsub=0;
while(R<=N)
{
while(sum<S&&R<=N)//R总指向当前满足要求区间的下一个 注意此处R可能>N
{
sum+=a[R];//累加器加上右指针指向的元素
++R;//右指针向右移
++lsub;
}
while(sum>=S)//L总指向当前区间的最左边 左闭右开
{
sum-=a[L];//累加器减去左指针指向的元素的值
++L;//左指针右移
–lsub;
}
ans=min(ans,lsub+1);
}
}