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

普通人怎么样做网站wordpress留言本

普通人怎么样做网站,wordpress留言本,免费开源cms网站源码,高德街景地图全景在线难度#xff1a;中等 题目#xff1a; 给定整数数组 nums 和整数 k#xff0c;请返回数组中第 k 个最大的元素。 请注意#xff0c;你需要找的是数组排序后的第 k 个最大的元素#xff0c;而不是第 k 个不同的元素。 你必须设计并实现时间复杂度为 O(n) 的算法解决此问题…难度中等 题目 给定整数数组 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个最大的元素且要求时间复杂度为O(n)我们可以使用快速选择算法这是一种基于快速排序的选择算法变种用于找到未排序数组中的第k个元素而无需完全排序数组。 选择基准从数组中随机选择一个元素作为基准元素或者选择数组的第一个元素、最后一个元素等作为基准。分区操作将数组分为两部分一部分包含所有不大于基准的元素另一部分包含所有大于基准的元素。这个操作结束后基准元素会处于它在排序后数组中的最终位置。同时我们也会得到基准元素在排序后数组中的索引。根据基准索引判断 如果基准元素的索引正好是k-1那么基准元素就是我们要找的第k大的元素。如果基准元素的索引小于k-1说明第k大的元素在基准的右边我们在基准的右边数组中继续执行前两步。如果基准元素的索引大于k-1说明第k大的元素在基准的左边我们在基准的左边数组中继续执行前两步。 递归或迭代重复上述过程直到找到第k大的元素。 JavaScript实现 function findKthLargest(nums, k) {function partition(left, right, pivotIndex) {const pivotValue nums[pivotIndex];// 将基准元素交换到数组末尾[nums[pivotIndex], nums[right]] [nums[right], nums[pivotIndex]];let storeIndex left;for (let i left; i right; i) {if (nums[i] pivotValue) {[nums[storeIndex], nums[i]] [nums[i], nums[storeIndex]];storeIndex;}}// 将基准元素放到正确的位置[nums[right], nums[storeIndex]] [nums[storeIndex], nums[right]];return storeIndex;}function quickSelect(left, right, kSmallest) {if (left right) return nums[left];let pivotIndex Math.floor(Math.random() * (right - left 1)) left;pivotIndex partition(left, right, pivotIndex);if (kSmallest pivotIndex) {return nums[kSmallest];} else if (kSmallest pivotIndex) {return quickSelect(left, pivotIndex - 1, kSmallest);} else {return quickSelect(pivotIndex 1, right, kSmallest);}}// 调整k为基于0的索引return quickSelect(0, nums.length - 1, nums.length - k); }// 示例 console.log(findKthLargest([3,2,1,5,6,4], 2)); // 输出: 5因为排序后数组为[1,2,3,4,5,6]第2大的元素是5这段代码首先定义了partition函数来实现分区操作然后定义了quickSelect函数来递归地执行快速选择算法。最后findKthLargest函数调用quickSelect来找到数组中第k大的元素。注意由于我们是从0开始计数所以在调用quickSelect时传入的是nums.length - k。
http://www.sczhlp.com/news/211055/

相关文章:

  • 浙江建设职业技术学院门户网站我想建网站找谁
  • 营销推广运营 网站重庆网站建设的好处
  • vps主机上新增网站网站开发 商标第几类
  • 长沙seo网站排名优化最权威的网站推广公司
  • 家教补习中心网站建设马洪旭 做的网站大学
  • 辽宁网站制作网站建设市场数据分析
  • 常用的博客建站程序joomla与wordpress哪个好
  • 大连网站制作网站建筑模板多少钱一张什么尺寸
  • 二建证从住房建设厅网站调出流程丹徒网站建设要多少钱
  • 六兄弟做网站赣州建设局网站
  • 外网有哪些有趣的网站网站开发量计算
  • 白云网站制作西安做企业网站哪家做的好
  • 昌乐网站建设南海网站建设价格
  • 网站建设的说明wordpress 备份工具怎么使用
  • 网站建设制作设计公司佛山怎么做网站怎么引入广告挣钱
  • 网站开发 开题报告濮阳网络改造
  • 塔吊施工人员操作合规性监测!思通数科 AI 卫士实时守护作业安全
  • Dos命令1
  • 题解:P1073 [NOIP 2009 提高组] 最优贸易
  • 吩咐
  • 怎样在手机做自己的网站6手机网站商城建设答辩
  • 建设网站网页打不开特效素材免费网站
  • 做网站要主机还是服务器wordpress页面源代码
  • 重庆网站策划微信公众号怎么做网站的
  • 免费下载歌曲的网站wordpress .net源码
  • 免费电商网站模板西安做网站科技有限公司
  • 冯提莫斗鱼前在哪个网站做直播建设一个网站需要哪些人员参与
  • 烟台企业网站建设WORDPRESS菜单位置添加搜索框
  • 网站模版怎么修改公司网建设单位
  • 景宁建设局网站官网颐和国际沧州网络科技