第K大元素
阿新 • • 發佈:2018-04-07
inf OS write nbsp lin 但是 hal cor log
在數組中找到第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-16 * 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 };
第K大元素