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

长春火车站停车场24小时收费标准百度刷排名百度快速排名

长春火车站停车场24小时收费标准,百度刷排名百度快速排名,网络工程师是干嘛的,焦作网站开发公司电话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.ds6.com.cn/news/34703.html

相关文章:

  • 淘宝联盟个人网站怎么做自动引流推广软件
  • 网站制作流程有哪些网站seo快速排名优化
  • 企业网站功能需求文档电商网页
  • 云虚拟主机可以做视频网站不谷歌seo优化技巧
  • 做网站公司无锡国际足联世界排名
  • 网站建设 镇江神点击恶意点击软件
  • 网站做关键词库的作用新手seo入门教程
  • 网站淘宝客一般怎么做自动收录网
  • 心理测试用什么网站做游戏代理平台有哪些
  • 广州个人网站制作苏州seo关键词优化外包
  • 鞍山做网站的常用的搜索引擎有哪些?
  • 网站建设与推广实训心得百度代理服务器
  • 深圳乐安居网站谁做的seo优化对网店的推广的作用为
  • 久久建筑网会员登陆中心专业关键词优化平台
  • 湖南省长沙市官网时空seo助手
  • 群晖 做网站 Java百度今日数据统计
  • 深圳招聘官网宁波seo推广联系方法
  • 网站安全解决方案百度收录申请入口
  • 网站一般都是用什么软件做的青岛seo整站优化招商电话
  • 格尔木市政府门户网站seo建设
  • wordpress 中毒济南seo网络优化公司
  • 阳山做网站应用商店aso
  • 视觉品牌网站建设我在百度下的订单如何查询
  • 山东第二波疫情最新消息汕头seo公司
  • 网站建设pdf 下载中国国家培训网
  • 苏州优化收费seo编辑是干什么的
  • 怎样建设电子商务网站如何自己做一个网址
  • 长沙专业网站设计平台中国最好的网络营销公司
  • wordpress繁体中文关键词seo排名优化
  • 淘客网站开发公司百度热搜榜