1 条题解

  • 1
    @ 2026-3-21 17:47:37

    #include<bits/stdc++.h>

    using namespace std;

    int a[400000];

    int main()

    {

    int kk;
    
    cin>>kk;
    
    for(int i=0;i<kk;i++)
    
    {
    
    	cin>>a[i];
    
    }
    
    int uu;
    
    cin>>uu;
    
    for(int i=0;i<uu;i++)
    
    {
    
    	int g=0;
    
    	cin>>g;
    
    	int left,right,mid,target,ans=-1;
    
    	target=g;
    
        left=0;
        
        right=kk-1;
        
        while(left<=right)
        
        {
        
            mid=left+(right-left)/2;
            
            if(target==a[mid])
            
            {
            
                ans=mid;
                
                right=mid-1;
                
            }else if(a[mid]>target)
            
            {
            
                right=mid-1;
                
            }else if(a[mid]<target)
            
            {
            
                left=mid+1;
                
            }
            
        }
        
        if(ans==-1)
        
        {
        
            cout<<-1<<" ";
            
        }else
        
        {
        
            cout<<ans+1<<" ";
            
        }
        
    }
    
    
    return 0;
    

    }

    • 1

    信息

    ID
    511
    时间
    1000ms
    内存
    128MiB
    难度
    5
    标签
    递交数
    64
    已通过
    11
    上传者