力扣--LCR 159.库存管理III

题目

仓库管理员以数组 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]

提示:

复制代码
0 <= cnt <= stock.length <= 10000

	0 <= stock[i] <= 10000

代码

class Solution {

public int[] inventoryManagement(int[] arr, int k) {

if(arr == null || arr.length == 0 || k == 0){

return new int[0];

}

复制代码
    return quickFind(arr, 0, arr.length - 1, k);
}
int[] quickFind(int[] arr, int left, int right, int k){
    int i = partition(arr, left, right);
    if(i + 1 == k){
        return Arrays.copyOf(arr, k);
    }

    if(i + 1 > k){
        return quickFind(arr, 0, i - 1, k);
    } else {
        return quickFind(arr, i + 1, right, k);
    }
}

int partition(int[] arr, int left, int right){
    int pivot = arr[left];

    int i = left + 1;
    int j = right;

    while(i < j){
        while(i <= j && arr[i] <= pivot) i++;
        while(i <= j && arr[j] >= pivot) j--;
        if(i >= j){
            break;
        }

        int temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    }

    arr[left] = arr[j];
    arr[j] = pivot;
    return j;

}

}

时间复杂度:O(n)

空间复杂度:O(logn),平均递归调用深度

相关推荐
智驱力人工智能7 小时前
小区高空抛物AI实时预警方案 筑牢社区头顶安全的实践 高空抛物检测 高空抛物监控安装教程 高空抛物误报率优化方案 高空抛物监控案例分享
人工智能·深度学习·opencv·算法·安全·yolo·边缘计算
孞㐑¥8 小时前
算法——BFS
开发语言·c++·经验分享·笔记·算法
月挽清风8 小时前
代码随想录第十五天
数据结构·算法·leetcode
XX風8 小时前
8.1 PFH&&FPFH
图像处理·算法
NEXT068 小时前
前端算法:从 O(n²) 到 O(n),列表转树的极致优化
前端·数据结构·算法
代码游侠9 小时前
学习笔记——设备树基础
linux·运维·开发语言·单片机·算法
想进个大厂9 小时前
代码随想录day37动态规划part05
算法
sali-tec9 小时前
C# 基于OpenCv的视觉工作流-章22-Harris角点
图像处理·人工智能·opencv·算法·计算机视觉
子春一9 小时前
Flutter for OpenHarmony:构建一个 Flutter 四色猜谜游戏,深入解析密码逻辑、反馈算法与经典益智游戏重构
算法·flutter·游戏
人道领域10 小时前
AI抢人大战:谁在收割你的红包
大数据·人工智能·算法