给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。输入第一行为数组,-1为结束标志,第二行为k值。输出第k大个元素。 输入样例: 3 2 1 5 6 4 -1 2 输出结果: 5完整代码
时间: 2024-03-10 12:49:07 浏览: 35
好的,这是一个算法问题,我会尽力回答。以下是解题思路:
1. 使用快速排序对数组进行降序排序;
2. 返回数组中第k个元素。
下面是代码实现(使用Python语言):
```python
def quick_sort(nums, left, right):
if left >= right:
return
pivot_index = partition(nums, left, right)
quick_sort(nums, left, pivot_index - 1)
quick_sort(nums, pivot_index + 1, right)
def partition(nums, left, right):
pivot = nums[left]
while left < right:
while left < right and nums[right] <= pivot:
right -= 1
nums[left] = nums[right]
while left < right and nums[left] > pivot:
left += 1
nums[right] = nums[left]
nums[left] = pivot
return left
nums = []
while True:
num = int(input())
if num == -1:
break
nums.append(num)
k = int(input())
# 使用快速排序对数组进行降序排序
quick_sort(nums, 0, len(nums) - 1)
# 返回数组中第k个元素
print(nums[k - 1])
```
输入样例:
```
3
2
1
5
6
4
-1
2
```
输出结果:
```
5
```
希望这个答案能够解决你的问题!
阅读全文