相关题目:
数的范围https://www.acwing.com/problem/content/791/
解题思路:
暴力线性搜索,没有用到什么技巧。主要是分别设置了一个存放起始位置、终止位置的数组。利用该数出现次数来判断该数的起始位置和终止位置。
相关代码:
#include<iostream>
using namespace std;
int s[10001];
int e[10001];
int c[10001];
int a[100001];
int main(){
int n,q,temp;
cin>>n>>q;
for(int i=0;i<10001;i++){
s[i]=-1;
e[i]=-1;
}
for(int i=0;i<n;i++){
cin>>a[i];
c[a[i]]++;
if(c[a[i]]==1){
s[a[i]]=i;
e[a[i]]=i;
}
else{
e[a[i]]=i;
}
}
for(int i=0;i<q;i++){
cin>>temp;
cout<<s[temp]<<" "<<e[temp]<<endl;
}
return 0;
}