#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param tickets int整型一维数组
# @param k int整型
# @return int整型
#
class Solution:
def timeRequiredToBuy(self , tickets: List[int], k: int) -> int:
# # write code here
cnt = 0
n= len(tickets)
# idx = [i for i in range(n)]
idx = list(range(n))
while 1:
i = idx[0] #队列队头所对应的ticket【】下标
cnt += 1 #每进行一次循环比较,+1s
if tickets[i] == 1:
#若队列队头为下标k,同时tickets[k] 已经减到1,则可将tickets[k]从队列中移除,循环结束
if idx[0] == k and tickets[k] == 1:
break
idx.pop(0)
tickets[i] =0 #移除只需将该位置元素设置为0,不进行pop()操作,保持tickets列表的原有位置
else:
tickets[i] -= 1
idx.append(idx.pop(0))
return cnt