首页 > 试题广场 >

查找第K小数

[编程题]查找第K小数
  • 热度指数:19957 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
查找一个数组的第K小的数,注意同样大小算一样大。 如  2 1 3 4 5 2 第三小数为3。

输入描述:
输入有多组数据。
每组输入n,然后输入n个整数(1<=n<=1000),再输入k。


输出描述:
输出第k小的整数。
示例1

输入

6
2 1 3 5 2 2
3

输出

3
头像 在做毕设的鲸鱼很刻苦
发表于 2023-03-05 23:33:37
#include <iostream> #include <queue> using namespace std; int main(){ int n,k; while (cin>>n){ priority_queue<in 展开全文
头像 Coming680
发表于 2022-02-10 15:30:17
最直接且有效的方法 #include<iostream> #include<set> #include<algorithm> using namespace std; int main() { int n,k; while(cin >> 展开全文
头像 牛客620696270号
发表于 2022-03-16 20:00:15
#include <iostream> #include <algorithm> #include <queue> using namespace std; int main(){    展开全文
头像 普罗列塔丽亚
发表于 2022-01-13 17:39:06
优先队列的底层是大顶堆,改成小顶堆、全体压入、再弹出k个即可 注意权值相同时是并列的 #include<stdio.h> #include<queue> using namespace std; int main(){ &n 展开全文
头像 ruuioche
发表于 2024-01-27 23:38:55
#include <stdio.h> //第x小的数可以用小根堆,先用较少的个数建立一个小根堆,然后插入新的结点,最终把数列插入完,然后用层次遍历的方法,遍历到第K即可 //但是如果选取的根堆规模不能够满足k,会找不到的,所以最笨的办法就是用n建立根堆 int in_num[1001 展开全文
头像 yyer
发表于 2023-02-12 20:00:41
#include <iostream> #include <set> using namespace std; int main() { int n,k; while(cin>>n){ int a; set< 展开全文
头像 semaxcong
发表于 2023-02-18 16:47:46
#include<iostream> #include<queue> using namespace std; int main(){ int n; while(cin>>n){ int k,num,j=1,ans; //ans 展开全文
头像 L456
发表于 2024-03-21 15:53:06
#include <bits/stdc++.h> using namespace std; int main() { int n; while(cin>>n) { int a[n]; for(int i=0;i<n;i++) cin>>a[i 展开全文
头像 在考古的小鱼干很有气魄
发表于 2023-03-16 16:49:31
#include <bits/stdc++.h> using namespace std; int main(){ set<int> st; int n,tmp; cin>>n; for(int i = 0; i < n; i++) { ci 展开全文
头像 牛客567628359号
发表于 2023-03-25 17:00:50
#include <iostream> #include <queue> #include <unordered_map> using namespace std; int main() { int n; while (cin >> 展开全文

问题信息

难度:
170条回答 16194浏览

热门推荐

通过挑战的用户

查看代码