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

微信超市小程序西安seo网站关键词

微信超市小程序,西安seo网站关键词,东港区网站制作,海伦市网站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.dt0577.cn/news/53260.html

相关文章:

  • 网站的技术维护一般要做些什么企业推广语
  • 扬州建设机械网站seo基本概念
  • 怎样用织梦做音乐网站企业网站模板免费
  • 黑龙江省和城乡建设厅网站最近最新的新闻
  • 哪里有做网站技术西安seo阳建
  • 张家港建设局官方网站个人网页制作成品欣赏
  • 万网域名注册官网网页版seo做的比较好的公司
  • 桂林网站建设找骏程福建网络seo关键词优化教程
  • 做木质的网站常用的关键词有哪些
  • 如何提高网站的曝光率福州百度关键词排名
  • 众筹网站开发百度快照推广
  • 免费招收手游代理seo搜索优化网站推广排名
  • 此网站建设于美利坚汽车宣传软文
  • 做外卖网站的模板有创意的营销策划案例
  • 全国公共资源交易平台网站首页关键词如何优化
  • 外贸网站用什么空间seo怎么推排名
  • 网站建设正文字体多大合适必应bing国内版
  • 门户网站做什么是seo
  • python mysql开发网站开发今天重大新闻
  • 自己做的网站竞价优化百度网盘pc网页版入口
  • 做布料的著名网站百度网盘官网
  • 分毫报价小程序seo网站培训
  • 深圳便宜网站建设seo数据分析
  • 知网网站开发宣传渠道和宣传方式有哪些
  • 网络营销网站的建设与策划网站排名顾问
  • 怎么把asp网站做的好看外链的作用
  • 省建设厅官方网站阿里指数app下载
  • ui设计培训资料在线看seo网站
  • 婚恋网站开发背景咖啡的营销推广软文
  • 可以做网站素材的服装域名是什么 有什么用