Python程序:查找平均等待时间
假设我们有一个名为 customers 的数组,其中 customers[i] = 包含一对 [arrival_i, time_i],这里 arrival_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 := 一个新的列表
- time := 0
- 对于 customers 中的每个对 (i, j),执行以下操作:
- 如果 i > time,则
- time := i + j
- 否则,
- time := time + j
- 如果 i > time,则
- 在 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
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP