社区讨论
70 TLE求条
B2166查找不重复元素出现的位置参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @mlisx6f3
- 此快照首次捕获于
- 2026/02/12 09:50 上周
- 此快照最后确认于
- 2026/02/12 11:10 上周
cin printf
map和数组和动态数组
二分和lower_bound
都试过了,已经没招了,九名啊
CPP#include <bits/stdc++.h>
using namespace std;
int BinSearch(int a[],int left,int right,int x) //二分查找x在数组中的位置,返回下标
{
while(left<=right)
{
int mid=(left+right)/2;
if(a[mid]==x)
return mid;
if(a[mid]>x)
right=mid-1;
if(a[mid]<x)
left=mid+1;
}
return -1; //找不到x
}
int main()
{
int n,m; cin>>n>>m;
vector<int> a(n);
for(int i=0; i<n; i++)
scanf("%d", &a[i]);
for(int i=0; i<m; i++)
{
int x; cin>>x;
int pos=lower_bound(a.begin(), a.end(), x)-a.begin();//0-(n-1)
if(pos<n && a[pos]==x)
printf("%d\n", pos+1);
else
printf("-1\n");
}
return 0;
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...