当前位置: 首页 > news >正文

北京做网站哪家强长沙网站建设 个人

北京做网站哪家强,长沙网站建设 个人,一级做爰片c视频网站,动漫制作专业专升本考什么专业leetcode原题链接:数组中的第K个最大元素 题目描述 给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 你必须设计并实现时间复杂度为 O…

        leetcode原题链接:数组中的第K个最大元素

题目描述

       给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。

       你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。

示例 1:

输入: [3,2,1,5,6,4], k = 2
输出: 5

示例 2:

输入: [3,2,3,1,2,4,5,5,6], k = 4
输出: 4

提示:

  • 1 <= k <= nums.length <= 105
  • -104 <= nums[i] <= 104

解题方法: 小顶堆。求最大的k个元素用小顶堆,求最小的k个元素用大顶堆。同时注意下c++的语法糖。std::less用于定义大顶堆, std::greater用于定义小顶堆。

C++代码

#include <iostream>
#include <vector>
#include <queue> 
#include <functional> // std::less, std::greater
/*
* 最大的k个元素,采用小顶堆, std::greater
* 最小的k个元素,采用大顶堆, std::less
* std::priority_queue的成员函数如下:
* empty(),size(),top(),push(), emplace()[c++11], pop(), swap(c++11)
*/class Solution {
public:int findKthLargest(std::vector<int>& nums, int k) {int n = nums.size();if (n == 0 || k > n) {return -1;}std::priority_queue<int, std::vector<int>, std::greater<int>> pq;for (int i = 0; i < n; i++) {if (i < k) { //初始化小顶堆上的k个元素pq.emplace(nums[i]);} else if (nums[i] > pq.top()) { //当前遍历的数字比堆顶元素大pq.pop();//先弹出堆顶元素pq.emplace(nums[i]);//再压入元素}}return pq.top();//小顶堆的头节点就是第k大元素}
};

http://www.yayakq.cn/news/465849/

相关文章:

  • 菠菜网站开发软件企业网站建设栏目结构图
  • 电子商务网站建设体会wordpress 双语网站
  • 职业中学网站建设html制作企业宣传网站
  • seo 能提高网站速度吗华铭保信建筑公司网站
  • 中山微信网站短视频营销名词解释
  • 高端做网站价格建设户外腰包网站
  • 泉州建设部网站网站主页设计优点
  • 化妆品公司网站建设方案大连公司名称大全
  • 旅游网站的系统建设的意义seo权重查询
  • 医药加盟网站模板重庆建设工程信息网址
  • 烟台中企动力提供网站建设wordpress 豆瓣 主题
  • 专业网站建设公司哪家专业论坛网站如何建设
  • 无锡做公司网站多少钱怎么做新网站才能被百度收录
  • 备案的网站 ,能拿来做仿站吗关键词推广名词解释
  • 企业网站制作查询seo入门基础知识
  • 成都网站建设十强企业做网站三河
  • 淄博市网站云平台最好的cms开源
  • 焦作市网站建设哪家好php做网站切换语言
  • 网站如何分页全flash网站制作教程
  • html购物网站模板下载seo优化必备技巧
  • 网站建设中存在的问题高端科技网站建设
  • 做化学题的网站wordpress 函数大全
  • 用nodejs做的网站泉州网站建设怎么收费
  • 政务公开 加强门户网站建设seo网络推广专员招聘
  • 连锁酒店网站建设互联网培训机构哪个好
  • 网站定制开发与模版自己电脑做网站模板
  • 网站 服务器 虚拟主机深圳深网站建设服务
  • app网站制作下载wordpress文章批量模版
  • 乔智云智能建站如何去除痘痘有效果
  • 做国外搞笑网站可以免费做3dLOGO的网站