库存管理 I
难度:
标签:
题目描述
English description is not available for the problem. Please switch to Chinese.
代码结果
运行时间: 48 ms, 内存: 13.5 MB
/*
* 题目思路:
* 1. 仓库管理员将一批商品 id 提前依次整理至库存表最后。
* 2. 库存表中的编号可能存在重复,按商品 id 升序排列。
* 3. 需要找到库存表中编号的最小的元素。
*/
import java.util.Arrays;
public class Solution {
public int findMin(int[] stock) {
return Arrays.stream(stock).min().orElse(Integer.MAX_VALUE);
}
}
解释
方法:
题解的整体思路是通过一次遍历库存数组stock来找到最小的元素。首先,初始化value为数组的第一个元素,即stock[0],并设置一个索引变量idx来记录当前最小值的索引。随后,遍历整个数组,对于每一个元素stock[i],如果其值小于当前记录的最小值value,则更新value为这个更小的值,并更新idx为当前的索引i。最后,遍历完成后,value中存储的就是数组中的最小值,直接返回该值即可。
时间复杂度:
O(n)
空间复杂度:
O(1)
代码细节讲解
🦆
在初始化`value`为数组的第一个元素时,是否考虑了数组可能为空的情况?
▷🦆
代码中的变量`idx`记录了最小值的索引,但最终函数只返回了最小值`value`。请问记录索引的目的是什么?
▷🦆
如果数组中的所有元素都相同,这段代码的效率如何?是否有优化的空间或方法?
▷