1 条题解

  • 0
    @ 2026-4-7 17:36:52

    #include<bits/stdc++.h> using namespace std; int n,x,a[200005]; int main(){ cin>>n>>x; for(int i=1;i<=n;i++) { scanf("%d",&a[i]); } int l=0,r=n+1; while(l+1<r) { int xb=(l+r)/2; if(a[xb]<x) l=xb; else r=xb; } if(a[l]<=x&&l!=0) { cout<<l; } else { cout<<-1; } return 0; }

    二分查找-类型6(查找小于k的最后一个位置)

    信息

    ID
    4944
    时间
    1000ms
    内存
    128MiB
    难度
    2
    标签
    递交数
    82
    已通过
    30
    上传者