带正负数的连续子数组最大长度
未排序数组中累加和为给定值的最长子数组长度
http://www.nowcoder.com/questionTerminal/36fb0fd3c656480c92b569258a1223d5
include <bits/stdc++.h>
using namespace std;
int main()
{
int n,k,t,len=0;
cin>>n>>k;
vector<int> arr(n+1,0);
for(int i=1;i<=n;i++)
{
cin>>t;
arr[i]=arr[i-1]+t;
if(arr[i]==k)
len=max(len,i);
}
for(int i=1;i<=n;i++)
for(int j=n;j>=i+len;j--) //j<i+len时,则长度必定小于len,比较无意义
{
if(arr[j]-arr[i]==k)
{
len = max(len,j-i);
break;
}
}
cout<<len<<endl;
return 0;
}</int>