在数组中找到第k大的元素
注意事项
你可以交换数组中的元素的位置
样例
给出数组 [9,3,2,4,8]
,第三大的元素是 4
给出数组 [1,2,3,4,5]
,第一大的元素是 5
,第二大的元素是 4
,第三大的元素是 3
,以此类推
挑战
要求时间复杂度为O(n),空间复杂度为O(1)
第一次我用的是冒泡排序,第一层循环循环K次
但是time limited
1 class Solution { 2 public: 3 /* 4 * param k : description of k 5 * param nums : description of array and index 0 ~ n-1 6 * return: description of return 7 */ 8 int kthLargestElement(int k, vector<int> nums) { 9 // write your code here 10 for(int i=0;i<k;i++) 11 for(int j=0;j<nums.size()-i-1;j++) 12 { 13 if(nums[j]>nums[j+1]) 14 { 15 int temp=nums[j]; 16 nums[j]=nums[j+1]; 17 nums[j+1]=temp; 18 } 19 } 20 return nums[nums.size()-k]; 21 } 22 };