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

上海专业网站建设方案电商平台项目

上海专业网站建设方案,电商平台项目,重庆网站建设公司哪家好,昆明制作网站公司每天一题,防止痴呆题目示例分析思路1题解1分析思路2题解2分析思路3题解3👉️ 力扣原文 题目 给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。 请注意,你需要找的是数组排序后的第 k 个最大的元素,而不…

每天一题,防止痴呆

  • 题目
  • 示例
  • 分析思路1
  • 题解1
  • 分析思路2
  • 题解2
  • 分析思路3
  • 题解3

👉️ 力扣原文

题目

给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。

请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。

你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。

示例

输入: [3,2,1,5,6,4], k = 2
输出: 5
输入: [3,2,3,1,2,4,5,5,6], k = 4
输出: 4

分析思路1

使用优先队列堆排序(效率太差)

题解1

class Solution {public int findKthLargest(int[] nums, int k) {PriorityQueue<Integer> heap = new PriorityQueue<>((n1,n2)->n1-n2);for (int n : nums){heap.add(n);}while (heap.size() > k){heap.poll();}return heap.poll();}
}

执行结果
在这里插入图片描述

分析思路2

借助Array工具类排序,然后取[数字长度-k]位元素。

题解2

class Solution {public int findKthLargest(int[] nums, int k) {Arrays.sort(nums);int n = nums.length;return nums[n-k];}
}

执行结果
在这里插入图片描述

分析思路3

采用了快速排序中的分区思想,即将一个数组分成小于某个元素和大于某个元素两部分。可以使用左右指针法进行查找。

在每次分区的过程中,通过比较当前元素与分界点的大小关系,将其移到左右两部分中。然后,对左右两部分进行递归,直到找到第N-K+1小的元素时返回结果。

题解3

public class Solution {/*** 找到数组中第K个最大元素* * @param nums 数组* @param k    第K个* @return 第K个最大元素*/public int findKthLargest(int[] nums, int k) {// 转化为第N-K+1小的元素int target = nums.length - k;int left = 0;int right = nums.length - 1;// 左右指针法查找第N-K+1小的元素while (left < right) {int pivotIndex = partition(nums, left, right);if (pivotIndex == target) {return nums[pivotIndex];} else if (pivotIndex < target) {left = pivotIndex + 1;} else {right = pivotIndex - 1;}}return nums[left];}/*** 分区,返回分区点的下标* * @param nums  数组* @param left  左下标* @param right 右下标* @return 分区点的下标*/private int partition(int[] nums, int left, int right) {int pivot = nums[right];int i = left - 1;for (int j = left; j < right; j++) {if (nums[j] <= pivot) {i++;swap(nums, i, j);}}swap(nums, i + 1, right);return i + 1;}/*** 交换数组中两个元素的位置* * @param nums 数组* @param i    位置i* @param j    位置j*/private void swap(int[] nums, int i, int j) {int temp = nums[i];nums[i] = nums[j];nums[j] = temp;}
}

执行结果
在这里插入图片描述

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

相关文章:

  • 后湖做网站代码素材网站
  • 做韩国外贸网站广告设计专业有哪些
  • 企业形象网站开发业务范畴怎么在网站上做抽奖
  • 滕州建网站怎么用2级目录做网站
  • 做网站一直不知道做什么网站站群系统软件
  • 金华 网站建设tomcat 怎么做网站
  • 织梦响应式网站拉新推广平台有哪些
  • 网站icp没有备案怎么检查网站建设所需软件
  • 电子商务网站建设目标及利益分析做自己的网站服务器多少钱
  • 质量检测中心培训网站上海有什么大公司
  • 常州网站排名提升公司网络推广
  • 手机网站宽度是多少吴堡网站建设费用
  • 互联网网站如何做网站建设电话销售话术技巧
  • 互动网站开发网站名称及网址
  • wordpress建站优缺点专业的网络推广
  • 网站开发运维广告公司企业简介怎么写
  • 网站怎么发布信息wordpress博客 houdini
  • 贵阳网站设计公司价格sem是什么职位
  • 网站用php与asp哪个好系统开发过程中最重要最关键的环节是
  • wordpress如何更改文章链接地址手机端关键词排名优化
  • 成品网站1688入口网页版怎样网站内部链接建设
  • 缙云建设局网上协同办公oa网站长沙网站建设专家
  • 保定网站制作套餐无锡网站推广哪家公司好
  • 烟台网站的优化温州市人才市场招聘网最新招聘
  • 网站建设哪家好建议兴田德润最早做弹幕的网站
  • php做数据网站线下推广图片
  • 单位网站查询工资链接怎么做网站一定备案
  • 建设工程质量监督网站上海国外网站建设
  • 备案用网站建设方案书v7v3 wordpress
  • 毕业设计做视频网站好做么模板下载ppt