题目描述给定一个长度为n的不降正整数序列同时还给定m次询问第i次询问给定一个整数要求你找出序列中大于的数的个数输入格式一共三行第一行包含两个整数n m第二行包含n个正整数 保证第三行包含m个正整数输出格式一共m行第i行包含一个整数表示序列中大于的数的个数样例输入样例4 31 1 2 41 3 5输出样例210c++11实现使运行时间最短
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
vector<int> nums(n);
for (int i = 0; i < n; i++) {
cin >> nums[i];
}
sort(nums.begin(), nums.end());
for (int i = 0; i < m; i++) {
int target;
cin >> target;
int count = 0;
int left = 0, right = n - 1;
while (left <= right) {
int mid = (left + right) / 2;
if (nums[mid] > target) {
count = n - mid;
right = mid - 1;
} else {
left = mid + 1;
}
}
cout << count << endl;
}
return 0;
}
``
原文地址: https://www.cveoy.top/t/topic/hGdc 著作权归作者所有。请勿转载和采集!