您的位置:首页 > 其它

Kth Largest Element in an Array

2015-09-01 16:58 197 查看
题目:

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.
解题思路1:
第一反应就是先排序,再求出对应的数。

后来看到tags是,以后再改!!!!

class Solution(object):

def findKthLargest(self, nums, k):

"""

:type nums: List[int]

:type k: int

:rtype: int

"""

nums.sort()

length = len(nums)

return nums[length-k]

思路2:

可以利用快排的思路解题

class Solution {
public:
int findKthLargest(vector<int>& nums, int k) {
int index = rand()%nums.size(), cur = nums[index];
vector<int> big, small;

for(int i=0;i<nums.size();i++)
{
if(i==index)continue;
if(nums[i]>=cur)
big.push_back(nums[i]);
else
small.push_back(nums[i]);
}

if(big.size()==k-1)
return cur;
else if(big.size()>k-1)
return findKthLargest(big,k);
else
return findKthLargest(small,k-1-big.size());

}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: