描述
给出有 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;
}