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

网站建设和维护要学多久广州关键词搜索排名

网站建设和维护要学多久,广州关键词搜索排名,我自己做个网站怎么做,中国科技大学题目: 输入整数数组 arr ,找出其中最小的 k 个数。例如,输入 4、5、1、6、2、7、3、8 这 8 个数字,则最小的 4 个数字是 1、2、3、4。 示例: 输入:arr [3,2,1], k 2 输出:[1,2] 或者 [2,1] …

题目:

输入整数数组 arr ,找出其中最小的 k 个数。例如,输入 4、5、1、6、2、7、3、8 这 8 个数字,则最小的 4 个数字是 1、2、3、4。

示例:

输入:arr = [3,2,1], k = 2
输出:[1,2] 或者 [2,1]

输入:arr = [0,1,2,1], k = 1
输出:[0]

思考:

  • 找到一个数组中最小的 k 个数,得出要对该数组进行排序

  • 排序算法该如何选择呢?

  • 根据题目要求,不要求输出的这 k 个数的顺序,考虑使用快速排序

  • 因为是输出最小的 k 个数,索引从 0 开始,所以当基准数为 k+1 小的数时,这个基准数的左边子数组就是我们要找的 k 个数,也就是基准数索引为 k 时

  • 使用快速排序划分子数组,每划分一次看基准数索引是否等于 k

  • 若 k < 基准数索引 ,代表第 k+1 小的数字在 左子数组 中,则递归左子数组

  • 若 k > 基准数索引 ,代表第 k+1 小的数字在 右子数组 中,则递归右子数组

  • 否则直接返回数组前 k 个数字

题解:

class Solution {public int[] getLeastNumbers(int[] arr, int k) {if (k >= arr.length) return arr;return quickSort(arr, k, 0, arr.length-1);}private int[] quickSort(int[] arr, int k, int l, int r){int i = l, j = r;while (i<j){while (i<j && arr[j] >= arr[l]) j--;while (i<j && arr[i] <= arr[l]) i++;swap(arr,i,j);}swap(arr,i,l);//基准数索引 > k,递归左子数组if (i > k) return quickSort(arr, k, l, i-1);//基准数索引 < k,递归右子数组if (i < k) return quickSort(arr, k, i+1, r);return Arrays.copyOf(arr, k);}//交换方法private void swap(int[] arr, int i, int j) {int tmp = arr[i];arr[i] = arr[j];arr[j] = tmp;}
}
http://www.yayakq.cn/news/855861/

相关文章:

  • 网站建设企业建站要多久柳州网站开发公司
  • 网站建设 环讯传媒比格设计网站官网
  • 网站建设认准猪八戒网做垂直平台网站
  • django网站开发案例做外贸怎样浏览国外网站
  • 公司微信网站建设方案学校网站建设注意什么
  • 网站建设的公司开发友情链接站长平台
  • 阿里巴巴免费做网站网上购物系统er图
  • 怎样做理财网站网站建设流程策划方案
  • 外贸网站虚拟主机国际域名的外贸网站
  • 建设银行确认参加面试网站WordPress强制ssl
  • 国外idc网站做app网站的软件有哪些内容
  • 男女做那个的免费视频网站北流网站建设制作
  • 电子政务网站建设要求怎么去推广自己的店铺
  • 东莞网页设计与制作教程关键词排名优化网站建设公司
  • 网站 常见推广房天下网站建设
  • 常州网站排名优化建设人力资源网
  • 做网站要幕布干啥呢网站基础建设强化属地管理责任
  • 网络公司网站模板做乡镇网站
  • 山东seo网站做笔记的网站源码
  • 墙绘做网站推广有作用没seo优质友链购买
  • 无锡制作网站公司哪家好手机seo排名
  • 做网站从设计到上线流程网红网站建设官网
  • 设计网站faq需注意福永网站设计
  • 南京做网站制作公司多地进一步优化防控措施
  • 网站建设与安全免费制作桥架app
  • 长沙市网站制作公司asp网站建设流程
  • 自助下单网站百度搜索风云榜小说
  • 找装修公司的网站建设个人银行网站
  • 专业返利网站开发建设企业网站官网下载中心
  • php做网站的源码西安传媒公司