3 条题解

  • 2
    @ 2026-4-1 13:50:21
    #include<bits/stdc++.h>
    using namespace std;
    int n,m,k,t,a[1000005],s[100005];
    int erfen(int n,int key){
    	int l=1,r=n,ans=-1;
    	while(l<=r){
    		int mid=(l+r)/2;
    		if(a[mid]==key){
    			l=mid+1;
    		}
    		else if(a[mid]<key){
    			l=mid+1;
    		}
    		else{
    			r=mid-1;
    			ans=mid;
    		}
    		mid=(l+r)/2;
    	}
    	return ans;
    }
    int main(){
    	cin>>n>>m;
    	for(int i=1;i<=n;i++)cin>>a[i];
    	cout<<erfen(n,m);
    	return 0;
    }
    
    
    • 0
      @ 2026-4-7 17:37:38

      #include<bits/stdc++.h> using namespace std; int main(){ int n,k,i; cin>>n>>k; int a[200005]; for(i=0;i<n;i++)cin>>a[i]; int l=0,r=n-1,ans=-1; while(l<=r){ int mid=(l+r)/2; if(a[mid]>k){ ans=mid+1; r=mid-1; }else l=mid+1; } cout<<ans; return 0; }

      • 0
        @ 2026-4-7 17:23:54

        #include<bits/stdc++.h> using namespace std; int main(){ int n,k,i; cin>>n>>k; int a[200005]; for(i=0;i<n;i++)cin>>a[i]; int l=0,r=n-1,ans=-1; while(l<=r){ int mid=(l+r)/2; if(a[mid]>k){ ans=mid+1; r=mid-1; }else l=mid+1; } cout<<ans; return 0; }

        • 1

        二分查找-类型4(查找大于k的第一个位置)

        信息

        ID
        4942
        时间
        1000ms
        内存
        128MiB
        难度
        2
        标签
        递交数
        84
        已通过
        32
        上传者