dalao帮忙看看,第一个wa,最后一个tle了(悲)
查看原帖
dalao帮忙看看,第一个wa,最后一个tle了(悲)
612361
chaydo123楼主2023/4/2 15:11
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1000001;
int nums[MAXN];
int find(int x, int n) {
	int left = 1;
	int right = n;
	while (left <= right) {
		int mid = left + (right - left) / 2;
		if (nums[mid] < x) 
			left = mid + 1;
		else if (nums[mid] > x)
			right = mid - 1;
		else {
			while (nums[mid] == x)	mid--;
			return mid + 1;
		}
	}
	return -1;
}
int main() {
	int n, m;
	int x;
	cin >> n >> m;
	for (int i = 1; i <= n; i ++) {
		cin >> nums[i];
	}
	for (int i = 1; i <= m; i ++) {
		cin >> x;
		cout << find(x, n) << " ";
	}
	return 0;
} 
2023/4/2 15:11
加载中...