LeetCode 215. 数组中的第K个最大元素(快速排序)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 215. 数组中的第K个最大元素(快速排序)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1. 題目
在未排序的數(shù)組中找到第 k 個(gè)最大的元素。請(qǐng)注意,你需要找的是數(shù)組排序后的第 k 個(gè)最大的元素,而不是第 k 個(gè)不同的元素。
示例 1: 輸入: [3,2,1,5,6,4] 和 k = 2 輸出: 5示例 2: 輸入: [3,2,3,1,2,4,5,5,6] 和 k = 4 輸出: 4說明: 你可以假設(shè) k 總是有效的,且 1 ≤ k ≤ 數(shù)組的長(zhǎng)度。來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/kth-largest-element-in-an-array
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
2. 快排解題
- 參考:尋找數(shù)組內(nèi)第K大的元素
- 類似題目:LeetCode 973. 最接近原點(diǎn)的 K 個(gè)點(diǎn)(排序/優(yōu)先隊(duì)列/快排)
56 ms 9.9 MB
python3 解答
class Solution:# py3def findKthLargest(self, nums: List[int], k: int) -> int:def findk(l, r, k):p = nums[l];i = lj = rwhile i < j:while i < j and nums[j] > p:j -= 1while i < j and nums[i] <= p:i += 1t = nums[i]nums[i] = nums[j]nums[j] = tt = nums[i]nums[i] = nums[l]nums[l] = tif i == k:return nums[i]elif i < k:return findk(i+1, r, k)else:return findk(l, i-1, k)return findk(0,len(nums)-1, len(nums)-k)1032 ms 19.7 MB
總結(jié)
以上是生活随笔為你收集整理的LeetCode 215. 数组中的第K个最大元素(快速排序)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 1252. 奇数值单元
- 下一篇: LeetCode 984. 不含 AAA