Lintcode 5. 第k大元素
来源:互联网 发布:学单片机看什么书 编辑:程序博客网 时间:2024/04/30 06:41
在数组中找到第k大的元素
如:给出数组 [9,3,2,4,8]
,第三大的元素是 4
解法:利用快速排序的思想,但这里每次快排完成后,只需对前后两部分中的一部分进行排序,计算可知时间复杂度为O(N)
class Solution: # @param k & A a integer and an array # @return ans a integer def kthLargestElement(self, k, A): return self.quick_Sort(A,0,len(A)-1,k) def quick_Sort(self, nums, left, right, k): i = left j = right tmp = nums[left] while i<j: while i<j and tmp>=nums[j]: j -= 1 if i<j: nums[i] = nums[j] i += 1 while i<j and tmp< nums[i]: i += 1 if i<j: nums[j] = nums[i] j -= 1 nums[i] = tmp if i == k-1: return nums[i] elif i < k-1: return self.quick_Sort(nums,i+1,right,k) else: return self.quick_Sort(nums,left,i-1,k)
阅读全文
0 0
- [LintCode]5.第k大元素
- Lintcode 5. 第k大元素
- LintCode 第K大元素
- LintCode-第k大元素
- 【LintCode】第k大元素
- LintCode 5 第K大元素
- LintCode Python 第k大元素
- LintCode 中位数/第K大元素
- LintCode之5 第k大元素
- (lintcode)第5题第k大元素
- lintcode-第k大元素-197(堆的实现)
- LintCode-剑指Offer-(5)第k大元素
- [LintCode] 第K大元素 Kth Largest Element
- LintCode笔记(12)——第k大元素
- lintcode&九章算法——lintcode NO.5 第k大元素 ? 带解决
- 第k大元素
- 第k大元素
- 第k大元素
- C++多线程
- String生成缩略词的工具类
- Java核心技术 卷1 (第十版)学习笔记
- [BZOJ1068][SCOI2007]压缩(区间DP)
- C#操作XML方法集合
- Lintcode 5. 第k大元素
- node项目部署linux
- Python之路【第2天】
- struts解决异常抛出的两种方法
- [BZOJ3110][ZJOI2013]K大数查询(线段树套线段树)
- 机房重构总结3
- Python系列学习笔记(一)——入门学习
- 朴素贝叶斯法
- 写在人生特别的一天,烙在内心深处的感触