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

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

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>

全部评论

相关推荐

不愿透露姓名的神秘牛友
03-18 14:29
牛客604067584号:感觉算法卷的人少很多,毕竟只有一部分bg还不错的硕士才会考虑算法,虽然hc不如后端,但是竞争真的少很多。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务