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

[数组排序] LCR 159. 库存管理

文章目录

      • 1. 题目链接
      • 2. 题目大意
      • 3. 示例
      • 4. 解题思路
      • 5. 参考代码

1. 题目链接

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



2. 题目大意

仓库管理员以数组 stock 形式记录商品库存表,其中 stock[i] 表示对应商品库存余量。

请返回库存余量最少的 cnt 个商品余量,返回 顺序不限。



3. 示例

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



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

4. 解题思路

对原数组从小到大排序后取出前 cnt 个数即可。



5. 参考代码

class Solution {
    public int[] inventoryManagement(int[] stock, int cnt) {
        quickSort(stock, 0, stock.length - 1);
        return Arrays.copyOf(stock, cnt);
    }
    private void quickSort(int[] stock, int l, int r) {
        // 子数组长度为 1 时终止递归
        if (l >= r) return;
        // 哨兵划分操作(以 stock[l] 作为基准数)
        int i = l, j = r;
        while (i < j) {
            while (i < j && stock[j] >= stock[l]) j--;
            while (i < j && stock[i] <= stock[l]) i++;
            swap(stock, i, j);
        }
        swap(stock, i, l);
        // 递归左(右)子数组执行哨兵划分
        quickSort(stock, l, i - 1);
        quickSort(stock, i + 1, r);
    }
    private void swap(int[] stock, int i, int j) {
        int tmp = stock[i];
        stock[i] = stock[j];
        stock[j] = tmp;
    }
}



http://www.kler.cn/a/383037.html

相关文章:

  • information_schema是什么?
  • 专栏二十三:Python读取和分析空间数据的经验杂谈
  • DL作业11 LSTM
  • I.MX6U 启动方式详解
  • Linux 常见用例汇总
  • 某集团GIF动态验证码识别
  • MyBatis几种SQL写法
  • 不用JS实现鼠标悬停提示框,以及Emotion里:hover使用踩坑
  • python识别ocr 图片和pdf文件
  • 【LeetCode】每日一题 2024_11_6 长度为 K 的子数组的能量值 I(模拟、一次遍历)
  • 数智化实践案例 | 高质数据、领先平台、报告加速,赋能决策
  • 个人域名备案实操教程
  • go实现并发安全hashtable 拉链法
  • 实现自动化数据抓取:使用Node.js操控鼠标点击与位置坐标
  • MySQL 5.x和8.0有什么区别?
  • 十、快速入门go语言之方法
  • linux tar 打包为多个文件
  • 第J9周:Inception v3算法实战与解析(pytorch版)
  • MySQL的sql练习,适合初学者
  • 共同探索未来科技新境界 冠捷科技集团及腾讯云AI智能战略合作签约会
  • 开源的 API 学习平台「GitHub 热点速览」
  • 全面解析:网络协议及其应用
  • asp.net文件防盗链
  • 理解spring中的AOP
  • git 提交代码流程
  • 递归 != 递龟