c++:
#include <bits/stdc++.h>
using namespace std;
int main(){
int n,k;
int arr[1000000];
cin >> n >> k;
for(int i = 0;i < n;i++){
cin >> arr[i];
}
sort(arr,arr + n);
cout << arr[k-1] << endl;
return 0;
}
python:(这里虽然只维护一个大小为k的堆,但是还是内存超限)
sys.stdin.readline().strip()相比input()更快且适合大量输入
import sys
import heapq
sc = input().split()
k = int(sc[1])
my_heap = []
for num_str in sys.stdin.readline().strip().split():
i = int(num_str)
heapq.heappush(my_heap,-i)
if len(my_heap) > k:
heapq.heappop(my_heap)
print(f"{-my_heap[0]}")
java:(内存超限)
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int k = sc.nextInt();
int[] arr = new int[n];
for(int i = 0;i < n;i++){
arr[i] = sc.nextInt();
}
Arrays.sort(arr);
System.out.println(arr[k-1]);
}
}