二分查找——二分查找模板~2020.7.1学习笔记

    技术2022-07-10  129

    样例输入:

    11 3 1 3 3 3 5 7 9 11 13 15 15 1 3 6

    样例输出:

    1 2 -1

    二分查找模板代码:

    #include <iostream> using namespace std; typedef long long ll; const ll maxn = 1000005; ll num[maxn] = {0}; ll findy(ll n,ll k){ ll l=1,r=n,mid; while(l<r){ mid = l+(r-l)/2;//胜过mid=(l+r)/2 if(num[mid]>=k) r=mid; else l=mid+1;//不包含相等,故+1 } if(num[l]==k) return l; else return -1; } int main() { ll n,m; cin>>n>>m; for(ll i=1;i<=n;i++) cin>>num[i]; while(m--){ ll k; cin>>k; cout<<findy(n,k)<<' '; } return 0; }
    Processed: 0.011, SQL: 9