关注
#include<iostream>
#include<vector>
using namespace std;
int Partition11(vector<int> &data, int start, int end);
int KLeastNumbers(vector<int> &data,int k);
int main()
{
vector<int> a;
int m;
int k;
while (cin >> m)
{
a.push_back(m);
if (cin.get() == '\n')
break;
}
cin >> k;
cout << KLeastNumbers(a, k);
return 0;
}
int KLeastNumbers(vector<int> &data, int k)
{
if (data.size()==0|| k <= 0) return -1;
int len = data.size();
int index = Partition11(data, 0, len - 1);
while (index != k - 1)
{
if (index > k - 1) index = Partition11(data, 0, index - 1);
if (index < k - 1) index = Partition11(data, index + 1, len - 1);
}
return data[index];
}
int Partition11(vector<int> &data, int start, int end)
{
int index = data[start];
int i = start + 1;
int j = end;
while (true)
{
while (data[i] > index)
{
i++;
if (i == end) break;
}
while (index >= data[j])
{
j--;
if (j == start) break;
}
if (i >= j) break;
swap(data[i], data[j]);
}
swap(data[start], data[j]);
return j;
}
查看原帖
点赞 1
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 去年的flag与今年的小目标 #
1567次浏览 52人参与
# 应届生应该先就业还是先择业 #
160542次浏览 807人参与
# 26年哪些行业会变好/更差 #
2506次浏览 46人参与
# 写论文的崩溃时刻 #
1289次浏览 28人参与
# 你都用AI做什么 #
1762次浏览 54人参与
# 有深度的简历长什么样? #
4544次浏览 75人参与
# 卷__卷不过你们,只能卷__了 #
1087次浏览 26人参与
# 入职第一天 #
3818次浏览 46人参与
# 哪些公司在招寒假实习? #
1241次浏览 24人参与
# 秋招你被哪家公司挂了? #
997761次浏览 7652人参与
# 一人分享一道面试手撕题 #
7548次浏览 394人参与
# 你不能接受的企业文化有哪些 #
2422次浏览 54人参与
# 这个工作能去吗 #
99362次浏览 612人参与
# 跳槽时有那些注意事项 #
117441次浏览 585人参与
# 小米求职进展汇总 #
997899次浏览 6501人参与
# 机械应届生薪资要多少才合适? #
35338次浏览 106人参与
# 机械人的薪资开到多少,才适合去? #
158216次浏览 553人参与
# 非技术岗薪资爆料 #
470845次浏览 3015人参与
# 一份好的简历长什么样? #
21816次浏览 412人参与
# 你觉得机械有必要实习吗? #
16955次浏览 97人参与
查看13道真题和解析