class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param a int整型vector
* @param n int整型
* @param K int整型
* @return int整型
*/
int findKth(vector<int>& nums, int n, int K) {
int left = 0, right = n - 1;
while (left < right) {
int pivot = nums[left];
int i = left, j = right;
while (i < j) {
while (i < j && nums[j] <= pivot) {
--j;
}
nums[i] = nums[j];
while (i < j && nums[i] >= pivot) {
++i;
}
nums[j] = nums[i];
}
nums[i] = pivot;
if (i == K - 1) {
return nums[i];
} else if (i > K - 1) {
right = i - 1;
} else {
left = i + 1;
}
}
return nums[left];
}
};