网易笔试题,请大神看一下。


#include<iostream>
#include<vector> using namespace std; int query(vector<int> a,int len,int q){     int i;     for(i=0;i<len;i++){         if(q>a[i]){             q=q-a[i];         }         else{             return i+1;         }     }     return i+1; } int bquery(vector<int> a,int len,int q){     int low=0;     int high=len-1;     while(low<high){         int mid=(low+high)/2;         int sum=0;         int i=0;         while(i<=mid) {                 sum+=a[i];                 i++;         }         if(q>sum){             low=mid+1;         }         else{             high=mid;         }     }     return low+1; } int main(){   int n;   int m;   int len;   vector <int> a;   cin>>n;   len=n;   int k=0;   while(k<n){    int s;    cin>>s;    a.push_back(s);    k++;   }   cin>>m;   while(m>0){     int q;     cin>>q;     cout<<bquery(a,len,q)<<endl;   }   return 0; }

#笔试题目##内推##C/C++##网易#
全部评论
为什么顺序搜索它说超时,我二分查找还是超时?有人帮我一下吗?
点赞
送花
回复 分享
发布于 2018-08-11 19:02
我跟你写的一模一样,也超时,想知道为什么。。。
点赞
送花
回复 分享
发布于 2018-08-11 19:37
现代汽车中国前瞻数字研发中心
校招火热招聘中
官网直投
我用二分查找也是超时,只通过50%的测试用例
点赞
送花
回复 分享
发布于 2018-08-11 19:41

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务