@TOC
题目概述
给一个vector数组,返回这个数组第几大的那个数即可。时间复杂度为n,空间复杂度为1。
解题思路
将数组进行重排,返回对应的那个数即可。可以利用C++自带的算法库algorithm中的sort方法直接排序返回即可。
代码实现
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
/**
* 返回一个数组中第n大元素
* @param n
* @param nums
* @return
*/
int kthLargestElement(int n, vector<int> &nums) {
//调用算法库的sort排序
sort(nums.begin(), nums.end());
//返回符合要求的答案即可
return nums[nums.size() - n];
}
int main() {
vector<int> tem = {2,6,4,9,7,3};
int count = kthLargestElement(2, tem);
cout << count << endl;
return 0;
}
个人纪录
- C++算法库:algorithm
- sort()方法:sort(前迭代器,后迭代器)