LeetCode-1701 平均等待时间

题目链接:1701. 平均等待时间 - 力扣(LeetCode)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
class Solution(object):
def averageWaitingTime(self, customers):
"""
:type customers: List[List[int]]
:rtype: float
"""
total=0 #记录总的等待时间
time_now=0 #记录当前时间
n=len(customers)
wait=[]
for i in range(n):
wait.append(0) #初始化
if n==0: #如果没有客人来,则平均等待时间为0
return 0
time_now=customers[0][0] #否则,当前时间变为第一个客人到来的时间
for i in range(n): #开始循环
if i==0: #如果是第一个客人,他的等待时间就是做菜时间 当前时间就是当前时间加上做菜时间
time_now=time_now+customers[i][1]
wait[0]=customers[0][1]
elif time_now>=customers[i][0]: #如果不是第一个客人,且做完菜时客人已经来了,则直接开始做菜,等待时间为做完菜时间-客人来的时间 当前时间为当前时间+做菜时间
time_now=time_now+customers[i][1]
wait[i]=time_now-customers[i][0]
else: #如果做完菜后 客人没有来, 则等客人来后则直接做菜,客人等待时间为做菜时间,当前时间就为,客人到来时间+做菜时间
time_now=customers[i][0]+customers[i][1]
wait[i]=customers[i][1]
for i in range(n): #做菜时间加起来
total=total+wait[i]
return float(total)/n #返回浮点型数据