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

网站开发的常见编程语言有哪些苏州网站建设制作服务商

网站开发的常见编程语言有哪些,苏州网站建设制作服务商,网站企业建设公司排名,盘多多网盘搜索目录 1- 思路快速选择 2- 实现⭐215. 数组中的第K个最大元素——题解思路 3- ACM实现 原题连接:215. 数组中的第K个最大元素 1- 思路 快速选择 第 k 大的元素的数组下标: int target nums.length - k 1- 根据 partition 分割的区间来判断当前处理方式…

目录

  • 1- 思路
    • 快速选择
  • 2- 实现
    • 215. 数组中的第K个最大元素——题解思路
  • 3- ACM实现


  • 原题连接:215. 数组中的第K个最大元素

1- 思路

快速选择

  • 第 k 大的元素的数组下标: int target = nums.length - k

1- 根据 partition 分割的区间来判断当前处理方式

  • 如果返回的 int 等于 target 说明找到了,直接返回
  • 如果返回的 int 小于 target 说明要在当前区间的右侧寻找,也就是 [pivotIndex+1,right]
  • 如果返回的 int 大于 target 说明要在当前区间的左侧寻找,也就是 [left,pivotIndex-1]

2- 实现 partition 随机选取一个 pivotIndex 分割区间

  • 2-1 随机选择一个下标
  • 2-2 交换 left 和 随机下标
  • 2-3 将随机下标的元素值设置为 pivot
  • 2-4 定义 lege 下标 使用 while(true)
    • 使得 le 指向的元素始终小于 pivot
    • 使得 ge 指向的元素始终大于 pivot

2- 实现

215. 数组中的第K个最大元素——题解思路

在这里插入图片描述

import java.util.Random;
class Solution {static Random random = new Random(System.currentTimeMillis());public int findKthLargest(int[] nums,int k){return quickSelect(nums,0,nums.length-1,nums.length-k);}public int quickSelect(int[] nums,int left,int right,int kIndex){if(right==left){return nums[left];}//int pivotIndex = partition(nums,left,right);if(pivotIndex == kIndex){return nums[kIndex];}else if( pivotIndex>kIndex){return quickSelect(nums,left,pivotIndex-1,kIndex);}else{return quickSelect(nums,pivotIndex+1,right,kIndex);}}public int partition(int[] nums,int left,int right){int randomIndex = left + random.nextInt(right-left+1);swap(nums,left,randomIndex);int mid = nums[left];int le = left+1;int ge = right;while(true){while(le<=ge && nums[le] < mid){le++;}while(le<=ge && nums[ge] > mid){ge--;}if(le>=ge){break;}swap(nums,le,ge);le++;ge--;}swap(nums,left,ge);return ge;}public void swap(int[] nums,int left,int right){int tmp = nums[left];nums[left] = nums[right];nums[right] = tmp;}}

3- ACM实现

public class kthNums {static Random random = new Random(System.currentTimeMillis());public static int findK(int[] nums,int k){// 快速选择 ,传四个参数return quickSelect(nums,0,nums.length-1,nums.length-k);}public static int quickSelect(int[] nums,int left,int right,int kIndex){if(right==left){return nums[left];}//int pivotIndex = partition(nums,left,right);if(pivotIndex == kIndex){return nums[kIndex];}else if( pivotIndex>kIndex){return quickSelect(nums,left,pivotIndex-1,kIndex);}else{return quickSelect(nums,pivotIndex+1,right,kIndex);}}public static int partition(int[] nums,int left,int right){int randomIndex = left + random.nextInt(right-left+1);swap(nums,left,randomIndex);int mid = nums[left];int le = left+1;int ge = right;while(true){while(le<=ge && nums[le] < mid){le++;}while(le<=ge && nums[ge] > mid){ge--;}if(le>=ge){break;}swap(nums,le,ge);le++;ge--;}swap(nums,left,ge);return ge;}public static void swap(int[] nums,int left,int right){int tmp = nums[left];nums[left] = nums[right];nums[right] = tmp;}public static void main(String[] args) {Scanner sc = new Scanner(System.in);String input = sc.nextLine();String[] parts = input.split(" ");int[] nums = new int[parts.length];for(int i = 0 ; i < nums.length ; i++){nums[i] = Integer.parseInt(parts[i]);}System.out.println("输入K");int k = sc.nextInt();System.out.println("结果是"+findK(nums,k));}
}
http://www.laogonggong.com/news/82423.html

相关文章:

  • 手机网站报名链接怎么做网站开发视频
  • 企业建站用什么系统桓台县网站建设
  • 郑州运营网站搭建优化做美术鉴赏网站的心得
  • 域名申请到网站上传全过程网站制作中心
  • 长春长春网站建设使用云主机做网站教程
  • 文山网站建设报价湖南 seo
  • 哪个网站教做ppt模板wordpress文章和页面
  • 电子商务网站建设包括哪些内容三水做网站
  • wordpress站长之家平顶山市哪里有做网站的
  • 哈尔滨网站建设学校天津规划设计公司
  • 西宁网站建设网络是干什么的
  • html5手机网站制作成都十大骗子公司
  • 云南建设厅网站监理员培训上海网站seoseodian
  • 免费html5播放器360网站关键词排名优化
  • 天河做网站设计黄页网站怎么查
  • 常州建设局网站首页做片头的网站
  • 小型静态网站是什么原因人力资源外包收费标准
  • 深圳住房和建设局网站预约放号织梦模板修改网站颜色
  • 设计素材网站特点wordpress吾爱
  • 自己建服务类收费网站要多少钱wordpress+高清背景
  • 建设营销型网站流程图自己做网站卖二手车
  • 企业把网站关闭原因廊坊关键词排名推广
  • 黄金网站app软件下载安装免费湖南十大软件公司介绍
  • 阿里云网站空间主机wordpress如何添加广告
  • 合益环保东莞网站建设自助建站cn
  • 人物设计网站甘孜网站建设
  • 胖小七网站建设网站开发工程师任职要求
  • 巴中自助网站建设中国建设监督网站
  • 楚雄微网站建设网站建设基本流程流程图
  • 益阳一站式网站建设公司深圳网站建设 设计首选公司