描述
给出有 n 个元素的由小到大的序列,请你编程找出某元素最后一次出现的位置。
(n<=10^6
输入描述
第一行:一个整数,表示由小到大序列元素个数;下面 n 行,每行一个整数;
最后一行
一个整数 x,表示待查找的元素;
#include<bits/stdc++.h>
using namespace std;
int n,m,a[1000010];
int u;
int find(int x) {
int l=1,r=n;
while (l<r) {
int mid=(l+r+1)/2;
if (x>=a[mid]) l=mid;
else r=mid-1;
}
if (a[l]!=x) return -1;
else return l;
}
int main() {
cin>>n;
for(int i=1; i<=n; i++) {
cin>>a[i];
}
cin>>u;
cout<<find(u)<<" ";
return 0;
}