用 Python 编写的查找平均等待时间的程序
假设我们有一个数组 customers,其中 customers[i] = 包含一对 [arrival_i, time_i],这里 attendance_i 是第 i 位顾客的到达时间。到达时间按从小到大的顺序排序。time_i 是准备第 i 位顾客的订单所需的时间。现在,当顾客到达时,他/她会下订单,只有当厨师空闲时,才会开始准备该订单。厨师一次不会为多位顾客准备食物。他按照顾客下订单的顺序准备食物。我们必须找到所有顾客的平均等待时间。
因此,如果输入为 customers = [[7,2],[8,4],[10,3],[20,1]],则输出将为 3.5,因为
第一位顾客在时间 7 到达,厨师接单并在时间 7 立即开始准备,并在时间 9 完成,因此第一位顾客的等待时间为 9 - 7 = 2。
第二位顾客在时间 8 到达,厨师接单并在时间 9 开始准备,并在时间 13 完成,因此第二位顾客的等待时间为 13 - 8 = 5。
第三位顾客在时间 10 到达,厨师接单并在时间 13 开始准备,并在时间 16 完成,因此第三位顾客的等待时间为16 - 10 = 6。
第四位顾客在时间 20 到达,厨师在时间 20 接单并立即开始准备,并在时间 21 完成,因此第四位顾客的等待时间为 21 - 20 = 1。
因此平均等待时间 = (2 + 5 + 6 + 1) / 4 = 3.5。
为了解决这个问题,我们将遵循以下步骤 −
- arr := a new list
- time := 0
- 对于 customers 中的每一对 (i, j),执行
- if i >时间,则
- 时间 := i + j
- 否则,
- 时间 := 时间 + j
- if i >时间,则
- 在 arr 末尾插入 (time-i)
- 返回 (arr 中所有项目的平均值)
示例
让我们看看下面的实现以便更好地理解 −
def solve(customers): arr = [] time = 0 for i , j in customers: if(i > time): time = i + j else: time += j arr.append(time - i) return sum(arr) / len(arr) customers = [[7,2],[8,4],[10,3],[20,1]] print(solve(customers))
输入
[[7,2],[8,4],[10,3],[20,1]]
输出
3
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

