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

LCR 159. 库存管理 III

这道题虽然简单,但是可以有多重解法,适合练习各种解法。

可以用基于快速排序思想的快速选择算法:

class Solution {
public:
    vector<int> inventoryManagement(vector<int>& stock, int cnt) {
        vector<int> res;
        int len = stock.size();
        quick_select(stock,0,len-1,cnt);
        for(int i = 0;i < cnt;i++)
            res.push_back(stock[i]);
        return res;
    }

    void quick_select(vector<int>& stock,int left,int right,int cnt)
    {
        if(left <= right)
        {
            int pos = partition(stock,left,right);
            if(pos == cnt - 1){
                return;
            }
            else if(pos > cnt -1){
                quick_select(stock,left,pos - 1,cnt);
            }
            else{
                quick_select(stock,pos + 1,right,cnt);
            }
        }
    }

    int partition(vector<int>& stock,int left,int right)
    {
        if(left >= right)
            return left;
        int pivot = stock[left];

        while(left < right){
            while(left<right&&stock[right] >= pivot) right--;
            stock[left] = stock[right];
            while(left<right&&stock[left]<= pivot) left++;
            stock[right] = stock[left];
        }
        stock[left] = pivot; 
        return left;
    }
};

http://www.dtcms.com/a/73669.html

相关文章:

  • K8S学习之基础三十四:K8S之监控Prometheus部署pod版
  • AWTK-WEB 快速入门(5) - C 语言 WebSocket 应用程序
  • VSCODE 报错Fatal error: can‘t create CMakeFiles/hello_world.elf.dir/C_/Users/...
  • 通过turfjs使用线段分割矢量多边形
  • 【TPAMI 2024】卷积调制空间自注意力SpatialAtt,轻量高效,即插即用!
  • JVM常用概念之安全点轮询
  • TensorRT:高性能深度学习推理的利器
  • DeepSeek私有化部署与安装浏览器插件内网穿透远程访问实战
  • 轨道交通3U机箱CPCI电机控制板(DSP),主要运行控制算法以对牵引电机进行精准的运动控制
  • 【Go语言圣经5.1】
  • 微前端 无界wujie
  • 蓝牙技术联盟中国实体成立!华为、小米发声支持本土化战略
  • QAI AppBuilder 快速上手(7):目标检测应用实例
  • CVPR2025自动驾驶端到端前沿论文汇总
  • Docker命令解析:加速你的容器化之旅(以Nginx为例)
  • 设计模式Python版 访问者模式
  • 串口烧录出现频繁回复乱码 频繁回复一个数字且烧录失败 字节混乱
  • 【docker】部署MySQL容器
  • [从零开始学SSM] Bean的配置
  • 迭代法反转链表
  • 光猫 和 全光 WiFi
  • 13个问题
  • 【大模型学习】第二十三章 深度解析BERT
  • 【工具/调研】各种类型文件转PDF
  • 9、讲一讲你理解的虚拟内存【中高频】
  • 【Linux】设置系统时间
  • 简单的实现RPC框架
  • NineData云原生智能数据管理平台新功能发布|2025年2月版
  • Java继承与反思,单例模式与静态的思考
  • STM32 ADC原理与驱动详解:从存储器映射到多通道采集(下) | 零基础入门STM32第六十六步