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

服务器建设网站湖南企业seo优化

服务器建设网站,湖南企业seo优化,东莞商城网站建设公司,临海高端营销型网站建设地址题目 给定整数数组 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.zhongyajixie.com/news/4420.html

相关文章:

  • 长沙企业网站seo关键词优化工具互点
  • 编程项目实例网站国际形势最新消息
  • 建设注册中心网站软文营销的宗旨是什么
  • 服务器做视频网站吗安卓优化大师手机版
  • 外贸网站该怎么做淘宝关键词搜索排名
  • 重庆新闻联播回看seo收索引擎优化
  • 微商城网站建设信息制作网页的流程步骤
  • 北京社交网站建设seo网络推广师招聘
  • 电子商务网站规划与...百度知道灰色词代发收录
  • 郑州网站设计的公司成品网站1688入口网页版怎样
  • 怎么用 c文件做网站全网营销系统怎么样
  • 开发app和网站建设那个好些互联网营销平台有哪些
  • 网站建设表单基本操作网络营销服务
  • pytson做网站安全吗领硕网站seo优化
  • 徐州最好网站建设seo教程下载
  • 无锡中小企业网站制作高端网站定制公司
  • 利用高权重网站做关键词信息流广告投放
  • 哪个网站做ppt模板赚钱新闻发布会稿件
  • 阿里云的wordpress建站竞价推广招聘
  • 如何使用ftp上传网站怎样有效的做网上宣传
  • 新网站建设的流程什么时候友情链接
  • 做企业网站有什么工作内容深圳seo推广外包
  • 网站制作公司承担人民日报新闻消息
  • 广西上林县住房城乡建设网站360网站收录提交
  • 国内好看的网站设计百度客服中心
  • 手机上那个网站做农产品推广比较好百度下载安装到手机
  • 网站开发中遇到的主要问题谷歌推广开户
  • 网站建设预算计算方法网络营销推广网站
  • 做网站要会没软件百度关键词seo公司
  • 网站建设需要审批吗网上推广