我的二分怎么错了
  • 板块学术版
  • 楼主Esawkm
  • 当前回复11
  • 已保存回复11
  • 发布时间2022/3/5 11:17
  • 上次更新2023/10/28 07:16:18
查看原帖
我的二分怎么错了
642481
Esawkm楼主2022/3/5 11:17
#include<bits/stdc++.h>
using namespace std;
long long n,a[100005],ans=-1,left,right,mid; 

int main()
{
	ans=-1;
	cin>>n;
	int y;
	for(int i=1;i<=n;i++)
	cin>>a[i];
	int left,right;
	cin>>y;
	left=1,right=n;
 while (left <= right) {
        int mid = left+(right-left)/2;
        if (a[mid] == y) {
            ans=mid,right=mid-1;
        }
        else if (a[mid] < y) {
            left = mid + 1;
        }
        else {
            right = mid - 1;
        }
    }
	cout<<ans;
	return 0;
} 
2022/3/5 11:17
加载中...