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

腾讯企业邮箱邮箱广州seo托管

腾讯企业邮箱邮箱,广州seo托管,深圳高端网站制作价格,想学做网站学那个软件好题目描述 在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k 2 输出: 5 示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k 4 输出: 4 说明:你可以假设 k 总…

题目描述

在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2
输出: 5
示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4
输出: 4
说明:你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/kth-largest-element-in-an-array
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

方法 1:排序

思路

直接给数组降序排序,再输出第 k-1 个数字。

复杂度分析

  • 时间复杂度:$O(NlogN)$,N 是数组长度。
  • 空间复杂度:$O(1)$。

代码

JavaScript Code

/*** @param {number[]} nums* @param {number} k* @return {number}*/
var findKthLargest = function (nums, k) {// 降序排序nums.sort((a, b) => b - a);return nums[k - 1];
};

方法 2:小顶堆

思路

维护一个大小为 k 的小顶堆,最后输出堆顶。

大顶堆也可以,就不写了。

复杂度分析

  • 时间复杂度:$O(klogk)$。
  • 空间复杂度:$O(k)$。

代码

JavaScript Code

/*** @param {number[]} nums* @param {number} k* @return {number}*/
var findKthLargest = function (nums, k) {const minHeap = new MinHeap();nums.forEach(n => {const size = minHeap.size();if (size < k) minHeap.insert(n);else if (size === k) {if (minHeap.peek() < n) {minHeap.pop();minHeap.insert(n);}}});return minHeap.peek();
};// *************************************************class Heap {constructor(list = [], comparator) {this.list = list;this.comparator = comparator;this.init();}init() {const size = this.size();for (let i = Math.floor(size / 2) - 1; i >= 0; i--) {this.heapify(this.list, size, i);}}insert(n) {this.list.push(n);const size = this.size();for (let i = Math.floor(size / 2) - 1; i >= 0; i--) {this.heapify(this.list, size, i);}}peek() {return this.list[0];}pop() {const last = this.list.pop();if (this.size() === 0) return last;const returnItem = this.list[0];this.list[0] = last;this.heapify(this.list, this.size(), 0);return returnItem;}size() {return this.list.length;}
}class MinHeap extends Heap {constructor(list, comparator) {if (typeof comparator != 'function') {comparator = function comparator(inserted, compared) {return inserted > compared;};}super(list, comparator);}heapify(arr, size, i) {let smallest = i;const left = Math.floor(i * 2 + 1);const right = Math.floor(i * 2 + 2);if (left < size && this.comparator(arr[smallest], arr[left]))smallest = left;if (right < size && this.comparator(arr[smallest], arr[right]))smallest = right;if (smallest !== i) {[arr[smallest], arr[i]] = [arr[i], arr[smallest]];this.heapify(arr, size, smallest);}}
}
http://www.mmbaike.com/news/47815.html

相关文章:

  • 企业网站源码 html百度主页入口
  • 企业网站建设 哪个公司做得好win10优化软件
  • 做网站的收益在哪中国时事新闻网
  • 做网站要会写代码吗品牌公关
  • 北京做网站制作公司微信广告推广价格表
  • 建二手车网站黑帽seo技术
  • 制作公司网站多少钱中国域名网官网
  • 网站图片属性是什么爱站长工具综合查询
  • 投资公司网站建设意义推广普通话奋进新征程演讲稿
  • 个人网页设计思路怎么写百度seo快速提升排名
  • 织梦网站怎么做伪静态页面南宁seo公司哪家好
  • 政府网站配色腾讯搜索引擎入口
  • 东凤网站广告投放运营主要做什么
  • 去什么网站可以做ctf的题目免费网站推广网站在线
  • 有关电商网站开发的实习报告怎么优化自己公司的网站
  • 常德市网站建设国内的搜索引擎排名
  • wordpress 怎么切换主题seo顾问服务福建
  • 门户网站建设公司哪家好产品推广运营方案
  • 微信朋友圈推广怎么做网站网站怎么快速被百度收录
  • 陕西中洋建设有限公司网站移动广告平台
  • 手机社区网站模板网站关键词推广价格
  • 协会网站信息平台建设seo怎么做排名
  • 帮人做图挣外快的网站手机优化软件
  • 青海旅游的网站建设免费的发帖收录网站
  • 备案网站 cdn软件开发培训多少钱
  • 建网站需要买什么青岛网站建设公司电话
  • wordpress $wp_queryseo搜索优化邵阳
  • 网站建设中什么意思电脑优化系统的软件哪个好
  • 做网站需要服务器吗网络推广的调整和优化
  • 大连网站制作公司58百度sem竞价托管