题目:
分析:
双指针根据目标和移动,
代码:
int main()
{
int s;
vector<int> n;
if(n.size()==0) return 0;
int len=1<<30;
int all=0;
for(int i=0;i<n.size();i++)
{
if(n[i]>=s) return 1;
all+=n[i];
}
if(all<s) return 0;
if(all==s) return n.size();
//指向目前区间的前后
int b1=0;
int b2=0;
int sum=n[0];
while(1)
{
if(sum<s) {
b2++;
if(b2==n.size()) break;
sum=sum+n[b2];
continue;
}
len=min(len,b2+1-b1);
sum=sum-n[b1];
b1++;
}
}