C++ 代码:找出 N 个数中的第 K 大数

N 个小朋友在一起做游戏。 每个小朋友在自己的硬纸板上写一个数,然后同时举起来。 接着,小y老师提一个问题,看哪个小朋友先抢答出来。 问题是:在这 N 个数中,第 K 大的是哪个数?请你编程完成。

输入描述

输入文件的第一行为 2 个整数,依次为 N 和 K (K <= N <= 10000)。 下面 N 行,每行为一个整数,表示从第 1 个小朋友到第 N 个朋友分别写的数。假设这些小朋友只知道 -32768~32767 之间的数。

输出描述

输出文件只有一行,就一个数,为第 K 大的那个数

代码实现

以下是用 C++ 编写的代码来解决这个问题:

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    int N, K;
    std::cin >> N >> K;

    std::vector<int> numbers(N);
    for (int i = 0; i < N; i++) {
        std::cin >> numbers[i];
    }

    std::sort(numbers.begin(), numbers.end(), std::greater<int>());

    std::cout << numbers[K - 1] << std::endl;

    return 0;
}

代码解释

  1. 首先读取输入的 N 和 K。
  2. 创建一个大小为 N 的 vector 来存储每个小朋友写的数。
  3. 使用循环读取每个小朋友写的数,并将其存储在 vector 中。
  4. 使用 std::sort 函数对 vector 进行降序排序。
  5. 输出第 K 大的数,即 vector 中的第 K-1 个元素。

希望这可以帮助到你!

C++ 代码:找出 N 个数中的第 K 大数

原文地址: https://www.cveoy.top/t/topic/qrsK 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录