文章
18
粉丝
183
获赞
57
访问
103.5k
注意点:在排序时,因为需要求出第k大的数,所以需要去重
因为题目要求输出第k大的,相当于降序排序,但是sort默认升序排序,所以我使用反向迭代器,就不用去自定义cmp了
使用迭代器或反向迭代器时
尤其是反向迭代器,尽管看起来是从右到左遍历(即it--),但是运算符只重载了++,所以即使使用反向迭代器,也是用it++来达到一个“从右到左”的遍历效果
两种方法都使用了
代码如下
//1909 乘法 map+反向迭代器(rbegan+rend)+stl find函数
#include <bits/stdc++.h>
using namespace std;
int n, m, k;
int main()
{
while (cin >> n >> m >> k)
{
int a[n];
int b[m];
map<int, int> c; //方法一用map
vector<int> d; //方法二用vector
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
for (int j = 0; j < m; j++)
{
cin >> b[j];
...
登录后发布评论
n * m 最大不是1e10吗,不会超时?数据弱了?