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

悠悠我心个人网站模板网站设计与制作教程1

悠悠我心个人网站模板,网站设计与制作教程1,wordpress文章底部添加自定义内容,wordpress 知识 管理系统题目 给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。 请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1: 输入: [3,2,1,5,6,4…

题目

给定整数数组 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 <= 10^5
  • -10^4 <= nums[i] <= 10^4

解答

源代码

class Solution {Random rand = new Random();public int findKthLargest(int[] nums, int k) {return quickSelect(nums, k, 0, nums.length - 1);}public int quickSelect(int[] nums, int k, int left, int right) {int index = rand.nextInt(right - left + 1) + left;// 目标值int target = nums[index];// 因为在之后交换元素中,nums[left]的值会被覆盖,所以这里把nums[index]记为nums[left]的值nums[index] = nums[left];int i = left, j = right;while (i < j) {while (i < j && nums[j] <= target) {j--;}nums[i] = nums[j];while (i < j && nums[i] >= target) {i++;}nums[j] = nums[i];}// 此时nums[i]前的元素都比目标值大,nums[i]之后的元素都比目标值小nums[i] = target;if (i == k - 1) {return nums[i];} else if (i < k - 1) {return quickSelect(nums, k, i + 1, right);} else {return quickSelect(nums, k, left, i - 1);}}
}

总结

这道题写得我好痛苦……因为后面的测试案例有极端情况,所以一定要用到随机,又因为用到了随机,所以和排序算法不是完全一样,不能直接进行交换,否则最后相遇的那个数和目标值交换后的数组不一定是合法的(目标值前面都是大于它的数,后面都是小于它的数)。

http://www.yayakq.cn/news/134992/

相关文章:

  • 辽宁省城乡建设厅网站深圳牌匾制作
  • 做众筹网站要什么资质国外销售网站怎样建设
  • 网站建设风险怎样规避公司没有网站如何做外贸
  • 深圳高端网站建设费用厦门小微企业网站建设补贴
  • wordpress登入修改wordpress 主机优化
  • 做ppt到哪个网站找图片电子商务网站开发岗位
  • 做电影网站需要注意什么男女明星直接做的视频网站
  • 做封面字体下载好的网站公司做网站怎么收费
  • 电子商务网站建设与管理课后题答案6wordpress 网站小模块
  • 58同城网站建设思路餐饮vi设计案例欣赏
  • 网站建设的开发工具网站视觉
  • 中文网站建设方案wordpress后台admin防止恶意
  • 一个域名怎么做网站php网站开发技术优点
  • 从做系统找不到以前的网站wordpress商城 插件
  • aspnet网站建设个人公司网站模板
  • 网站制作一般多少钱苏州电商网站建设
  • 郑州网站优化顾问关于网站建设的入门书
  • 莱州市网站杭州市在建工程项目
  • 网站开发者模式有什么用门户网站和网站的区别
  • 网站建设广告合同需要交印花税吗抚顺外贸网站建设
  • 钓鱼网站如何做合肥装修
  • 做卖挖掘机的网站肇庆百度快照优化
  • 手机网站可以做动态吗罗定市城乡建设局网站
  • 广播电台网站建设方案网站制作教程dw
  • 建设一个做资料库的网站网站做app要权限
  • 凡科网站代码最新款手机
  • 推荐企业门户网站建设设计工作室图片 实拍
  • 企业网站建设可分为什么层次广西自治区集约化网站建设要求
  • 福田企业网站推广公司建筑网论坛
  • 杭州滨江建行网站网页风格设计