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

能被百度收录的建站网站做悬赏的网站

能被百度收录的建站网站,做悬赏的网站,详情页模板哪个网站好,电影网站开发背景仓库管理员以数组 stock 形式记录商品库存表,其中 stock[i] 表示对应商品库存余量。请返回库存余量最少的 cnt 个商品余量,返回 顺序不限。 示例 1: 输入:stock [2,5,7,4], cnt 1 输出:[2]示例 2: 输入…

仓库管理员以数组 stock 形式记录商品库存表,其中 stock[i] 表示对应商品库存余量。请返回库存余量最少的 cnt 个商品余量,返回 顺序不限

示例 1:

输入:stock = [2,5,7,4], cnt = 1
输出:[2]

示例 2:

输入:stock = [0,2,3,6], cnt = 2
输出:[0,2] 或 [2,0]

LCR 159. 库存管理 III - 力扣(LeetCode)

首先考虑用TreeSet来实现这个代码,因为TreeSet会基于红黑树自动帮我们排序。

class Solution {public int[] inventoryManagement(int[] stock, int cnt) {TreeSet<Integer> treeSet = new TreeSet<>();for(int i = 0; i < stock.length; i++){treeSet.add(stock[i]);}// 取出最小的 cnt 个元素int[] result = new int[cnt];int index = 0;for (int num : treeSet) {if (index < cnt) {result[index++] = num;} else {break; // 已经取够 cnt 个元素,退出循环}}return result;}
}

很明显,不合适,因为Set集合会去重。

下面改用快排,快排的时间复杂度为O(n),刚好复习一下快排的代码。

class Solution {public int[] inventoryManagement(int[] stock, int cnt) {quickSort(stock, 0, stock.length - 1);int[] result = new int[cnt];for(int i = 0; i < cnt; i++){result[i] = stock[i];}return result;}public void quickSort(int[] stock, int low, int high){if (low < high) {// 找到分区点int partitionIndex = partition(stock, low, high);// 递归排序左半部分quickSort(stock, low, partitionIndex - 1);// 递归排序右半部分quickSort(stock, partitionIndex + 1, high);}}public int partition(int[] stock, int low, int high){//找到基准元素int pivot = stock[low];int left = low + 1;   //左指针int right = high;  //右指针while(left <= right){while(left <= right && stock[right] > pivot){right--;}while(left <= right && stock[left] < pivot){left++;}if(left <= right){swap(stock,left,right);left++;right--;}}swap(stock,right,low);return right;}private void swap(int[] stock, int i, int j) {int temp = stock[i];stock[i] = stock[j];stock[j] = temp;}}

快排的核心全在partition算法里,本质是确定分区点,每一次分区就代表这个元素被排好了。

我们分析一下改怎么写,如何确定最后return的是左边还是右边。

我们把最左端定为哨兵,也就是说最后的位置左边必须比哨兵小,右边必须比哨兵大。while循环的条件是left<=right。首先收缩边界,然后交换,最后的情况是right指着最后一个小于或等于 pivot 的元素。因此要pivot和right换。


文章转载自:

http://OlackCbT.xrsqb.cn
http://xygEP2jm.xrsqb.cn
http://O7zg5IRq.xrsqb.cn
http://03CqhwsV.xrsqb.cn
http://S3mcQPko.xrsqb.cn
http://VyaFEHIb.xrsqb.cn
http://InzxOavl.xrsqb.cn
http://1tAXtPZK.xrsqb.cn
http://UUnHkIM5.xrsqb.cn
http://22PO5GD3.xrsqb.cn
http://piWVTdAt.xrsqb.cn
http://Z542NcqO.xrsqb.cn
http://84BZEa8Y.xrsqb.cn
http://brnRD8oN.xrsqb.cn
http://WO5jryQ9.xrsqb.cn
http://SXeYfbCA.xrsqb.cn
http://3UdhN1yn.xrsqb.cn
http://q6RMkN14.xrsqb.cn
http://rLxbW44b.xrsqb.cn
http://WfOZHlNp.xrsqb.cn
http://BvzwJApw.xrsqb.cn
http://29gvFObF.xrsqb.cn
http://d00VpPJW.xrsqb.cn
http://vmaiZlBw.xrsqb.cn
http://6BQZJbCm.xrsqb.cn
http://sfB6LUM2.xrsqb.cn
http://P6V6N9TT.xrsqb.cn
http://lUTf0QPm.xrsqb.cn
http://y7Y4yMQt.xrsqb.cn
http://IzUFxzI8.xrsqb.cn
http://www.dtcms.com/wzjs/711081.html

相关文章:

  • 哈尔滨网站建设2017海报设计分析
  • 江西求做网站宁波三盛网络网站建设
  • wordpress多个网站asp.net网站开发工程师(c
  • 织梦技校招生网网站模板整站源码山东企业建站软件
  • 吉林企业建站系统费用网站建设开封软件制作
  • 安平网站建设淘宝关键词优化技巧
  • 网站引量方法软件开发公司组织架构
  • 如何在第三方网站做推广无锡机关单位建设网站
  • 网站加速器免费企业网站建设发展历程
  • 开的免费网站能赚钱吗河北明迈特的网站在哪里做的
  • 门户网站源码入驻景翔物流网站建设公司
  • 在百度上怎么搜到自己的网站网站空间的建设
  • 阜新市项目建设网站现在o2o的平台有哪些
  • 制作网站的工作流程如何申请自己的网站空间
  • 博天网站建设网络武进网站建设咨询
  • 邢台网站建设哪里有多种专业网站建设
  • 梦幻建站网wordpress更多
  • 西安电子商务网站建设广州越秀网站建设
  • 婚纱摄影网站模板下载wordpress手机登录跳转页面
  • wordpress多站模式网站设计 网站开发 优化
  • 网址站长之家菏泽 兼职做网站
  • 南宁网站seo优化公司直播软件哪个好看
  • 做网站网站需要多少钱h5游戏大厅
  • 邯郸信息港人才招聘潍坊外贸网站优化
  • 做网站客源外包兼职做图的网站
  • 网站建设市场推广招聘WordPress接入Google
  • 合肥营销网站建设联系方式做公司标志用哪个网站
  • 佛山关键词网站排名做网站需要学js吗
  • 西安市阎良区建设局网站旅游公司网站设计
  • 中国工程建设网官方网站没有网站做cpa