c_cpp GFG发现号码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp GFG发现号码相关的知识,希望对你有一定的参考价值。

#include<iostream>
#include<bits/stdc++.h>
using namespace std;

// #Searching #Problem #GFG
//  https://practice.geeksforgeeks.org/problems/finding-number/0

int bin_inc(vector<int> a,int l,int r,int x){
    if(l<=r){
        int n=l+((r-l)/2);
        if(a[n]==x){
            return n;
        }if(a[n]>x){
            return bin_inc(a,l,n-1,x);
        }else{
            return bin_inc(a,n+1,r,x);
        }
    }
    return -1;
}
int bin_dec(vector<int> a,int l,int r,int x){
    if(l<=r){
        int n=l+((r-l)/2);
        if(a[n]==x){
            return n;
        }if(a[n]<x){
            return bin_dec(a,l,n-1,x);
        }else{
            return bin_dec(a,n+1,r,x);
        }
    }
    return -1;
}

int main(){
    int t;
    cin>>t;
    while(t--){
        int n,x;
        cin>>n>>x;
        int k=-1;
        vector<int> a(n);
        for(int i=0;i<n;i++){
            cin>>a[i];
            if(k==-1 && i>0 && a[i]<a[i-1]){
                k=i;
            }
        }
        int ans=bin_inc(a,0,k-1,x);

        if(ans!=-1){
            cout<<ans<<endl;
        }else{
            ans=bin_dec(a,k,n-1,x);
            if(ans!=-1){
                cout<<ans<<endl;
            }else{
                cout<<"OOPS! NOT FOUND"<<endl;
            }
        }
    }
    return 0;
}

以上是关于c_cpp GFG发现号码的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp GFG骑士步行

c_cpp GFG排序矩阵行

c_cpp GFG最低成本路径

c_cpp GFG重复和失踪

c_cpp GFG谁将获胜

c_cpp GFG按特定顺序排序