LintCode 5、第k大元素

@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;
}

个人纪录

  1. C++算法库:algorithm
  2. sort()方法:sort(前迭代器,后迭代器)
发布了28 篇原创文章 · 获赞 5 · 访问量 2189

猜你喜欢

转载自blog.csdn.net/qq_40307379/article/details/104946802