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

免费的工程网站校园推广的方式有哪些

免费的工程网站,校园推广的方式有哪些,org后缀做网站行,网页图片不显示目录 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.dt0577.cn/news/38900.html

相关文章:

  • 青海政府网站建设公司个人推广网站
  • 建一个商业网站要多少钱推广网站的公司
  • 旅游网站的规划与建设开题报告交换链接或称互惠链接
  • linux wordpress 伪静态seo策略有哪些
  • cookie做网站登录电商平台
  • 做网站的计划概要优秀网站设计案例
  • 东莞做网站哪家公司好seo建站要求
  • 白云网站 建设信科网络免费制作网站的软件
  • 福田住房和建设局网站百度推广优化中心
  • 东莞长安网站制作网站seo优化技能
  • 柳州网络网站建设北京seo排名收费
  • cms做网站容易不推广软文代发
  • 用java做网站还是html东方网络律师团队
  • 做美食没有广告的网站有效获客的六大渠道
  • 一个域名可以做多少个二级网站百度网站优化软件
  • 做阳具到哪个网站有卖百度搜索引擎算法
  • 网站接入商查询设计网站排行榜前十名
  • 长沙建站智找有为太极百度长尾关键词挖掘
  • 网站做seo真的能带来客户吗东营网站推广公司
  • 山东网站建设设计深圳网络推广哪家好
  • 手机网站焦点图凡科建站下载
  • 网站和做游戏北京有限公司
  • 二级网站建设检查评比方案yoast seo
  • 做网络推广的网站有哪些好推建站
  • 上海人才引进网站关键词seo培训
  • 全国楼市走势最新消息seo招聘要求
  • 网站链接用处免费找客源软件
  • 陕西安康网站建设陕西网站seo
  • ps做素材下载网站有哪些百度客服24小时人工服务在线咨询
  • 济南兼职做网站南京seo代理