#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

相关推荐

在写周报的打工人很独...:这个笔试昨天晚上做了一下,真难啊,前后端,ai全有
点赞 评论 收藏
分享
11-12 14:30
已编辑
广东科技学院 前端工程师
迷茫的小刺猬在迎接o...:前端岗位越来越少了,中小厂也更倾向全栈了,更不需要初级或者实习。可能就大厂才会有一些岗位,但是很看学历。
实习,投递多份简历没人回...
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务