【剑斩OFFER】算法的暴力美学——库存管理 III

一、题目描述

二、算法原理

对整个数组进行升序,然后返回前 cnt 项的集合就行。

快排算法:

https://blog.csdn.net/2403_84958571/article/details/155754329?spm=1011.2415.3001.10575&sharefrom=mp_manage_link

三、代码实现

cpp 复制代码
class Solution {
public:
    vector<int> inventoryManagement(vector<int>& stock, int cnt) {
        Quicksort(0,stock.size() - 1,stock);
        vector<int> v;
        for(int i = 0; i < cnt;i++) v.push_back(stock[i]);
        return v;
    }

    void Quicksort(int l,int r,vector<int>& nums)
    {
        if(l >= r) return;
        int keyi = Get(l,r,nums);
        int i = l;
        int left = l - 1;
        int right = r + 1;

        while(i < right)
        {
            if(nums[i] > keyi) swap(nums[i],nums[--right]);
            else if(nums[i] == keyi) i++;
            else swap(nums[++left],nums[i++]);
        }

        Quicksort(l,left,nums);//zuobian
        Quicksort(right,r,nums);//右边
    }

    int Get(int l,int r,vector<int>& nums)
    {
        int tmp = rand();
        return nums[ l + (tmp % (r - l + 1)) ];
    }
};
相关推荐
灯澜忆梦16 分钟前
GO_函数_1
算法
言乐637 分钟前
Python实现建造微服务商城后台
开发语言·python·算法·微服务·架构
凉云生烟1 小时前
机器学习 02- KNN算法
人工智能·算法·机器学习
wabs6661 小时前
关于动态规划【力扣583.两个字符串的删除操作的思考】
算法·leetcode·动态规划
可编程芯片开发1 小时前
空气流量和空气压力参数解耦系统simulink建模与仿真
算法
_Doubletful2 小时前
妙用位运算:解构汉明距离至100%(提供分析与多解)
c语言·算法·leetcode
凯瑟琳.奥古斯特2 小时前
力扣1013三等分解法与C++实现
开发语言·c++·算法·leetcode·职场和发展
Keven_112 小时前
AcWing算法提高课思路速查:搜索
算法·搜索
沙蒿同学2 小时前
当古诗词遇上 AI:从 38 万句诗词中取一个好名字
python·算法·架构
变量未定义~2 小时前
单调栈、单调队列(模板)、子矩阵(模板)
数据结构·算法·蓝桥杯