求助,关于二分(没错又是我)
查看原帖
求助,关于二分(没错又是我)
680926
Secrifice楼主2022/2/16 21:06

大佬们自学了一下二分,代码如下,现在按照样例会输出1 3 0,请问能否帮忙改进一下

#include <bits/stdc++.h>
using namespace std;
int a[1000001];
int Find(int a[], int x, int n, int m){
	int l = 1;
	int r = n;	
	int flag = 0;
	while(l < r){
		int mid = (l + r) / 2;
		if(x == a[mid]){
			return mid;
			flag = 1;
			break;
		}else if(x > a[mid]){
			l = mid + 1;
		}else{
			r = mid - 1;
		}	
	}
	if(flag = 0){
		return -1;
	}
}
int main (){
	int n, m, x;
	cin >> n >> m;
	for(int i = 1; i <= n; i++){
		cin >> a[i];
	}
	for(int i = 1; i <= m; i++){
		cin >> x;
		cout << Find(a, x, n, m);
	}
	return 0;
} 
2022/2/16 21:06
加载中...