在數組中找到第k大的元素數組
你能夠交換數組中的元素的位置spa
給出數組 [9,3,2,4,8]
,第三大的元素是 4
code
給出數組 [1,2,3,4,5]
,第一大的元素是 5
,第二大的元素是 4
,第三大的元素是 3
,以此類推blog
要求時間複雜度爲O(n),空間複雜度爲O(1)排序
第一次我用的是冒泡排序,第一層循環循環K次ip
可是time limitedelement
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 };