带正负数的连续子数组最大长度

未排序数组中累加和为给定值的最长子数组长度

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>

全部评论

相关推荐

不愿透露姓名的神秘牛友
今天 10:48
点赞 评论 收藏
分享
10-25 00:32
香梨想要offer:感觉考研以后好好学 后面能乱杀,目前这简历有点难
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务