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

深圳的网站建设公司价格必应搜索引擎地址

深圳的网站建设公司价格,必应搜索引擎地址,wordpress照片保护,如何做网站与网页题目: 输入整数数组 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.ritt.cn/news/13824.html

相关文章:

  • 中美网站建设差异重庆seo俱乐部联系方式
  • 网站招标建设适合小学生摘抄的新闻2022年
  • 重庆做网站的世界比分榜
  • 杭州互联网网站定制公司西安关键词网站排名
  • 集团高端网站建设东莞网站推广哪里找
  • 网站 只做程序网站建设关键词排名
  • 合肥制作网站的公司最近大事件新闻
  • css字体颜色seo推广是什么工作
  • 昆山做网站多少钱郑州短视频代运营公司
  • 网站动态海报效果怎么做的销售管理怎么带团队
  • 国家卫生健康委员会官网查询入口优化优化
  • 什么网站做电子相册比加快关键词优化快排
  • crm客户关系管理论文西安seo排名
  • 网站建设算什么专业杭州seo网站建设靠谱
  • 建筑装饰网站模板网站优化包括对什么优化
  • 宁波做微信网站广告文案
  • 用discuz怎样做网站百度域名注册
  • 免费建站网站一区黄在线国产网站seo报价
  • 交互设计网站有哪些whois查询 站长工具
  • 用C语言做网站登录界面专业网站建设
  • 做网站图片尺寸网站页面设计模板
  • 网站推广发票税率建立网站怎么搞
  • 网站上图片的链接怎么做腾讯竞价广告
  • 最好的装饰公司营销型网站百度网盘网站入口
  • 幸运28网站代理怎么做企业文化内容范本
  • 如何重新运行wordpress温州seo
  • 做外包网站摘要营销推广活动策划
  • wordpress网站 app网站后台管理系统
  • 网站建设可以修改吗专业搜索引擎seo合作
  • 汕头市城市建设总公司网站5月疫情最新消息