Leetcode 215 Kth Largest Element in an Array
来源:互联网 发布:手机解压软件苹果 编辑:程序博客网 时间:2024/06/08 19:09
Find the kth largest element in an unsorted array. Note that it is the kth largest element in the sorted order, not the kth distinct element.
For example,
Given [3,2,1,5,6,4]
and k = 2, return 5.
Note:
You may assume k is always valid, 1 ≤ k ≤ array's length.
Credits:
Special thanks to @mithmatt for adding this problem and creating all test cases.
我AC的做法:
class Solution: def findKthLargest(self, nums, k): """ :type nums: List[int] :type k: int :rtype: int """时间复杂度:O(nlogn) 因为用的是快速排序
66ms,竟然打败了74.14%的python3答案,但我相信这肯定不是这道题的考点
快速选择算法:
复杂度:时间 Avg O(N) Worst O(N^2) 空间 O(1)
class Solution: def findKthLargest(self, nums, k): """ :type nums: List[int] :type k: int :rtype: int """ pivot = nums[0] left = [] equal = [] right = [] for i in nums: if i<pivot: left.append(i) elif i==pivot: equal.append(i) else: right.append(i) if k <= len(right): return self.findKthLargest(right, k) elif (k - len(right)) <= len(equal): return equal[0] else: return self.findKthLargest(left, k - len(right) - len(equal))
思想是对的, pivot变成随机选取会比固定选数组第一个值好,但实际AC不了,因为内存溢出
最后:https://segmentfault.com/a/1190000003704825 这篇文章总结的很好
阅读全文
0 0
- Leetcode Kth Largest Element in an Array
- Leetcode: Kth Largest Element in an Array
- LeetCode Kth Largest Element in an Array
- [LeetCode] Kth Largest Element in an Array
- [leetcode] Kth Largest Element in an Array
- leetcode--Kth Largest Element in an Array
- #leetcode#Kth Largest Element in an Array
- LeetCode Kth Largest Element in an Array
- 【Leetcode】Kth Largest Element in an Array
- Leetcode: Kth Largest Element in an Array
- Kth Largest Element in an Array -- leetcode
- [Leetcode]Kth Largest Element in an Array
- [LeetCode]Kth Largest Element in an Array
- *LeetCode-Kth Largest Element in an Array
- LeetCode----Kth Largest Element in an Array
- LeetCode Kth Largest Element in an Array
- leetcode-Kth Largest Element in an Array
- LeetCode -- Kth Largest Element in an Array
- 自顶向下,逐步求精
- Treasure Exploration
- MySQL索引总结
- leetcode 282. Expression Add Operators
- HDOJ 2192 MagicBuilding
- Leetcode 215 Kth Largest Element in an Array
- Android View类的四个构造函数-面试时总被问到
- C#Sql防注入字符串
- <#include> vs <#import> in FreeMarker
- tomcat配置-将eclipse项目手动配置到tomcat中
- XUI设计
- 数组中只出现一次的两个数(异或)
- pygame库写游戏——入门<1>
- 奇异值分解(SVD)原理