社区讨论

灌水区参与者 4已保存回复 8

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
7 条
当前快照
1 份
快照标识符
@m1vzm5bb
此快照首次捕获于
2024/10/05 18:04
去年
此快照最后确认于
2025/11/04 17:58
4 个月前
查看原帖
大佬给我缩缩时间,求求了
CPP
#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;
}


回复

8 条回复,欢迎继续交流。

正在加载回复...