力扣--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),平均递归调用深度

相关推荐
源代码•宸5 分钟前
Golang基础语法(go语言结构体、go语言数组与切片、go语言条件句、go语言循环)
开发语言·经验分享·后端·算法·golang·go
l1t12 分钟前
快速加载CSV文件到数据库的工具pg_csv_loader
数据库·算法
辞砚技术录16 分钟前
MySQL面试题——索引、B+树
数据结构·数据库·b树·面试
yugi98783819 分钟前
基于Matlab的晴空指数计算实现
开发语言·算法·matlab
ADI_OP35 分钟前
ADAU1452的开发教程3:常规音频算法的开发(2)
算法·dsp开发·adi dsp中文资料·adi dsp·adi音频dsp·adi dsp开发教程
666HZ66637 分钟前
数据结构1.0 数据结构在学什么
数据结构·算法
余瑜鱼鱼鱼42 分钟前
Java数据结构:从入门到精通(五)
数据结构
君义_noip1 小时前
信息学奥赛一本通 1951:【10NOIP普及组】导弹拦截 | 洛谷 P1158 [NOIP 2010 普及组] 导弹拦截
c++·算法·csp-j·信息学奥赛
环黄金线HHJX.1 小时前
《QuantumTuan ⇆ QT:Qt》
人工智能·qt·算法·编辑器·量子计算
jz_ddk1 小时前
[实战] 射频相位噪声单位转换:从dBc/Hz到rad
算法·rf·射频·相位噪声·相噪