1. Top k 大的数

  • 排序后直接索引输出:)

    std::sort(v.rbegin(), r.rend());
    return v[k-1];
  • 使用优先队列(),每 pop 一个元素,都需重排大顶堆):

    std::priority_queue<int> PQ(v.rbegin(), v.rend());
    for (size_t i = 0; i < k-1; ++i) {
        PQ.pop();
    }
    return PQ.top();
  • 使用自带函数(随机选择算法,期望耗时 )):

    std::nth_element(v.rbegin(), v.rbegin()+k-1, v.rend());
    return v[k-1];

相关文章:

  • 2022-12-23
  • 2021-06-22
  • 2021-06-24
  • 2022-12-23
  • 2021-11-01
  • 2022-01-03
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-10-25
  • 2021-09-10
  • 2021-05-22
  • 2021-11-07
  • 2021-07-31
  • 2021-07-05
  • 2022-12-23
相关资源
相似解决方案