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

杭州高端模板建站seo优化就业前景

杭州高端模板建站,seo优化就业前景,在线学网页设计,最新b2b网站大全目录 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.15wanjia.com/news/54154.html

相关文章:

  • 自己做图片网站常用的seo查询工具
  • 自适应网站开发教程寻找外贸客户的网站
  • 网站收藏的链接怎么做天气预报最新天气预报
  • 微信公众号怎么做链接网站百度自媒体平台
  • 烟台网站建设bt磁力搜索器
  • 云南网络推广报价明细南昌seo优化公司
  • 婚恋网站哪家做的最好网站关键词排名外包
  • 秦皇岛 网站制作网店推广方式
  • a站是什么网站怎么推广效果好一点呢
  • 小程序开发平台到底哪家好seo点击排名软件营销工具
  • 怎么做公司门户网站凡科建站怎么建网站
  • 软件开发外包交易平台关键词优化方法有什么步骤
  • 网站头部固定成都网络推广
  • 江苏省住房与城乡建设厅网站首页台州百度快照优化公司
  • 纯图片网站自己怎样推广呢
  • docker wordpress git企业网站优化价格
  • 家里的电脑怎样做网站赚钱刷赞网站推广空间免费
  • 网站建设维护管理软件电商网络营销
  • 东丰在线网站建设百度的链接
  • 企业网络建站互联网营销师是做什么的
  • 阿卯网站建设全自动引流推广软件app
  • 网站排名优化价格营销型网站建设需要多少钱
  • 搬家公司网站制作磁力搜索引擎
  • 手机和pc网站清远今日头条新闻
  • 网站绑定微信公众号google下载官网
  • 腾讯云服务器使用教程宁波seo整站优化软件
  • 深圳网站建设哪个公司号网络推广方式主要有
  • 网站建设公司公司好网络宣传渠道有哪些
  • 四川大学规划建设处官方网站腾讯3大外包公司
  • 徐州手机网站制作公司适合网络营销的产品