第三种 : class Solution { public: int partition(vector<int> &input, int l, int r) { int target = input[r - 1], i = l, j = l; for (; j < r - 1 ; j++) { if (target > input[j]) { if (i != j) swap(input[i++], input[j]); else i++; } } swap(input[i], input[r - 1]); return i; } vector<int> GetLeastNumbers_Solution(vector<int> input, int k) { int size = input.size(), l = 0, r = size; if (k == 0 || k > size) return {}; while (l < r) { int index = partition(input, l, r); if (index + 1 == k || index == k) return vector<int>(input.begin(), input.begin() + k); if (index + 1 < k) l = index + 1; else r = index; } return {}; } };</int></int></int></int>
点赞

相关推荐

10-09 22:05
666 C++
找到工作就狠狠玩CSGO:报联合国演讲,报电子烟设计与制造
点赞 评论 收藏
分享
牛客网
牛客企业服务