在数组中找到第 k 大的元素。
样例 1:
输入: n = 1, nums = [1,3,4,2] 输出: 4样例 2:
输入: n = 3, nums = [9,3,2,4,8] 输出: 4直接使用sort函数对数组元素进行排序,最后输出所求的k大的元素。
这里使用的是STL容器中的vector<int>,并不是平时定义的int nums[],使用vector的原因是,vector是一个可变数组,数组长度会随着元素的个数而变化,若不会使用vector的读者可以参考:vector常用解法及详解
其余的STL容器请参考:STL
若要是在LintCode的IDE中想要添加一个新的自定义函数,需要在函数前加上static,否则会报错:
static bool lcc(int a,int b){ return a>b; }
在代码段中添加:
sort(nums.begin(),nums.end()); int num = nums.size(); return nums[num-n];即可:
自定义一个排序原则函数:
static bool lcc(int a,int b){ return a>b; }在代码段中添加:
sort(nums.begin(),nums.end(),lcc); int num = nums.size(); return nums[n-1];即可: