查看原帖
931366
quanquhengzhezou楼主2024/10/5 18:03

大佬给我缩缩时间,求求了

#include<iostream>
using namespace std;
const int N=1e8+10;
int n,nums[N],x;
int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		scanf("%d",&nums[i]);
	}
    scanf("%d",&x);
	int left = 0;
    int right = n;
    for(;left<=right;){
        int mid =( left + right ) / 2;
        if (nums[mid] == x) {
            cout<<mid;
            return 0;
        } else if (nums[mid] < x) {
            left = mid + 1;
        } else {
            right = mid - 1;
        }
    }
     
    cout<<-1;
	return 0;
}


2024/10/5 18:03
加载中...