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

凡科建站网站怎样做软件下载网站优化是什么意思

凡科建站网站怎样做软件下载,网站优化是什么意思,维护网站,外国做网站的平台题目描述 在未排序的数组中找到第 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.tj-hxxt.cn/news/94926.html

相关文章:

  • 做五金的外贸网站有哪些长春seo公司
  • 鲅鱼圈网站怎么做常用的网络推广手段有哪些
  • 网站首页布局风格总排行榜总点击榜总收藏榜
  • 少儿编程自学网站网络口碑营销的成功案例
  • 如何卸载mac wordpressseo推广哪家好
  • 郑州网站建设公司排名推56论坛
  • 电子商务网站建设课后习题答案网络服务提供商是指
  • 全flash网站制作百度收录比较好的网站
  • 绵阳网站建设公司品牌线上推广方式
  • 深圳网站建设怎样产品市场营销策划书
  • 温州网站优化推广方案汕头seo公司
  • 网站工作室设计临沂色度广告有限公司
  • wordpress 如何安装中文版本描述优化方法
  • 如何做网站链接分析宣传软文案例
  • 公司网站制作应该注意些什么免费的推广引流软件下载
  • 男女做暧昧试看网站免费个人网站建站
  • 正规的合肥网站建设成都排名推广
  • 做的比较好的企业网站互联网公司
  • 荆州大气网站建设价格如何在百度推广自己的产品
  • 长春网站制作价格口碑营销策略
  • 做网站济南西找网站设计公司
  • 广州企业网站设计制作网站搭建关键词排名
  • 网站销售策划可免费投放广告的平台
  • 高埗镇仿做网站真正免费建站
  • 毕业设计网站用什么做站长是什么级别
  • 佛山做外贸网站网络营销主要有哪些特点
  • 用符号做照片的网站上海seo博客
  • 如何 做网站挣钱app营销策略都有哪些
  • 移动端网站搭建百度云盘登录电脑版
  • 淘宝运营可以自学吗优化建站