LeetCode2020-0629-0706
坚持记录LeetCode每一天
[0629] 215. Kth Largest Element in an Array (Medium)
215. Kth Largest Element in an Array
keyword: 排序算法
Question
Find the k-th largest element in an unsorted array. Note that it is the k-th largest element in the sorted order, not the k-th distinct element.
Example 1:
1 |
|
Example 2:
1 |
|
Note: You may assume k is always valid, 1 ≤ k ≤ array's length.
Intuition
基于快排,在分解的过程当中,我们会对子数组进行划分,如果划分得到的 qq 正好就是我们需要的下标,就直接返回 a[q];否则,如果 q 比目标下标小,就递归右子区间,否则递归左子区间。这样就可以把原来递归两个区间变成只递归一个区间,提高了时间效率。这就是「快速选择」算法。
我们知道快速排序的性能和「划分」出的子数组的长度密切相关。直观地理解如果每次规模为 n 的问题我们都划分成 1 和 n - 1,每次递归的时候又向 n - 1 的集合中递归,这种情况是最坏的,时间代价是 \(O(n ^2)\)。我们可以引入随机化来加速这个过程,它的时间代价的期望是 \(O(n)\),证明过程可以参考「《算法导论》9.2:期望为线性的选择算法」。
复杂度分析
时间复杂度:\(O(n)\),如上文所述,证明过程可以参考「《算法导论》9.2:期望为线性的选择算法」。
空间复杂度:\(O(\log n)\),递归使用栈空间的空间代价的期望为 \(O(\log n)\)。
参考链接
作者:LeetCode-Solution 链接:https://leetcode-cn.com/problems/kth-largest-element-in-an-array/solution/shu-zu-zhong-de-di-kge-zui-da-yuan-su-by-leetcode-/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
Java Code
1 |
|
[0630] 剑指 Offer 09. 用两个栈实现队列 (Easy)
[0701] 718. Maximum Length of Repeated Subarray (Medium)
718. Maximum Length of Repeated Subarray
Question
Intuition
作者:LeetCode-Solution 链接:https://leetcode-cn.com/problems/maximum-length-of-repeated-subarray/solution/zui-chang-zhong-fu-zi-shu-zu-by-leetcode-solution/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
Java Code
1 |
|
[0702]378. Kth Smallest Element in a Sorted Matrix (Medium)
378. Kth Smallest Element in a Sorted Matrix
Question
Intuition
作者:LeetCode-Solution 链接:https://leetcode-cn.com/problems/kth-smallest-element-in-a-sorted-matrix/solution/you-xu-ju-zhen-zhong-di-kxiao-de-yuan-su-by-leetco/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
Java Code
1 |
|
[0703] 108. Convert Sorted Array to Binary Search Tree (Easy)
108. Convert Sorted Array to Binary Search Tree
作者:LeetCode-Solution 链接:https://leetcode-cn.com/problems/convert-sorted-array-to-binary-search-tree/solution/jiang-you-xu-shu-zu-zhuan-huan-wei-er-cha-sou-s-33/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
Question
1 |
|
Intuition
Java Code
[0704] 32. Longest Valid Parentheses (Hard)
32. Longest Valid Parentheses LeetCode 32. 最长有效括号(难)
[0705] 44. Wildcard Matching (Hard)
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!