列表

详情


CPP72. 找到数组里的第k大数(C++)

描述

给出一个包含个整数的数组,使用vector存储。
用STL算法实现输出数组的第大数

输入描述

第一行两个整数n ,k
第二行个整数表示数组

输出描述

输出一个数表示答案。

示例1

输入:

10 2
22 30 99 98 41 69 3 47 40 97

输出:

22

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++ 解法, 执行用时: 2ms, 内存消耗: 460KB, 提交时间: 2022-07-23

#include<bits/stdc++.h>
#include<vector>
#include<algorithm>
using namespace std;
int main(){
	int n,k;
	vector<int>a;
	// write your code here......
    cin>>n;
    cin>>k;
    for(int i=0;i<n;i++)
    {
        int tmp=0;
        cin>>tmp;
        a.push_back(tmp);
    }
	sort(a.begin(),a.end());
    vector<int>::iterator it=a.begin()+k-1;
    cout<<*it<<endl;
    
    
	return 0;
}

C++ 解法, 执行用时: 3ms, 内存消耗: 392KB, 提交时间: 2022-05-16

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,k;
	vector<int>a;
    cin >> n;
    cin >> k;
    for(int i=0; i<n; i++)
    {
        int tmp;
        cin >> tmp;
        a.push_back(tmp);
    }
    sort(a.begin(), a.end());
    cout << a.at(k-1);
	return 0;
}

C++ 解法, 执行用时: 3ms, 内存消耗: 392KB, 提交时间: 2022-05-11

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,k;
	vector<int>a;
	cin>>n;
    cin>>k;
    for(int i=0;i<n;i++)
    {
        int x;
        cin>>x;
      a.push_back(x);
     }
    sort(a.begin(), a.end(),less<int>());
    cout<<a.at(k-1);
	return 0;
}

C++ 解法, 执行用时: 3ms, 内存消耗: 392KB, 提交时间: 2022-05-09

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,k;
	vector<int> a;
	// write your code here......
    int x;
	cin>>n>>k;
    for(int i=0;i<n;i++)
    {
        cin>>x;
        a.push_back(x);
    }
    sort(a.begin(),a.end());
        cout<<a[k-1];
	return 0;
}

C++ 解法, 执行用时: 3ms, 内存消耗: 396KB, 提交时间: 2022-07-23

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,k;
	vector<int>a;
	// write your code here......
	cin>>n>>k;
    for(int i=0;i<n;i++)
    {
        int c;
        cin>>c;
        a.push_back(c);
    }
    sort(a.begin(),a.end());
    
    
    auto it=a.begin()+k-1;
    cout<<*it;
    
        
	return 0;
}

上一题