复制
收藏
提问
全网

#include<iostream> #include<cmath> #include<iomanip> #include<cstdio> #include<cstring> #include<string> using namespace std; int a[1000005]={0}; int main(){ int L=1,R,mid,n,x; cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } cin>>x; R=n; while(L<R){ mid=(R+L)/2; if(a[mid]==x){ while(a[mid-1]==a[mid]){ mid--; } cout<<mid; return 0; } else if(a[mid]>x){ L=mid+1; } else{ R=mid-1; } } cout<<-1; return 0; }

5月前
全网
文档
学术
百科
知识库
时间不限
自动

理解问题#include<iostream> #include<cmath> #include<iomanip> #include<cstdio> #include<cstring> #include<string> using namespace std; int a[1000005]={0}; int main(){ int L=1,R,mid,n,x; cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } cin>>x; R=n; while(L<R){ mid=(R+L)/2; if(a[mid]==x){ while(a[mid-1]==a[mid]){ mid--; } cout<<mid; return 0; } else if(a[mid]>x){ L=mid+1; } else{ R=mid-1; } } cout<<-1; return 0; }

已完成理解#include<iostream> #include<cmath> #include<iomanip> #include<cstdio> #include<cstring> #include<string> using namespace std; int a[1000005]={0}; int main(){ int L=1,R,mid,n,x; cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } cin>>x; R=n; while(L<R){ mid=(R+L)/2; if(a[mid]==x){ while(a[mid-1]==a[mid]){ mid--; } cout<<mid; return 0; } else if(a[mid]>x){ L=mid+1; } else{ R=mid-1; } } cout<<-1; return 0; }

展开阅读网页

更简洁一些
转笔记
简洁
#include<iostream> #include<cmath> #include<iomanip> #include<cstdio> #include<cstring> #include<string> using namespace std; int a[1000005]={0}; int main(){ int L=1,R,mid,n,x; cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } cin>>x; R=n; while(L<R){ mid=(R+L)/2; if(a[mid]==x){ while(a[mid-1]==a[mid]){ mid--; } cout<<mid; return 0; } else if(a[mid]>x){ L=mid+1; } else{ R=mid-1; } } cout<<-1; return 0; }
知识树
#include<iostream> #include<cmath> #include<iomanip> #include<cstdio> #include<cstring> #include<string> using namespace std; int a[1000005]={0}; int main(){ int L=1,R,mid,n,x; cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } cin>>x; R=n; while(L<R){ mid=(R+L)/2; if(a[mid]==x){ while(a[mid-1]==a[mid]){ mid--; } cout<<mid; return 0; } else if(a[mid]>x){ L=mid+1; } else{ R=mid-1; } } cout<<-1; return 0; }
如何优化二分查找算法?
二分查找的效率如何?
C++中如何实现二分查找?

以上内容由AI搜集生成,仅供参考

在线客服