LeetCode 5926. 买票需要的时间

时间:2023-01-23小编:迷失传奇版本

有n个人前来排队买票,其中第0人站在队伍最前方,第(n-1)人站在队伍最后方。

给你一个下标从0开始的整数数组tickets,数组长度为n,其中第i人想要购买的票数为tickets[i]。

每个人买票都需要用掉恰好1秒。一个人一次只能买一张票,如果需要购买更多票,他必须走到队尾重新排队(瞬间发生,不计时间)。如果一个人

没有剩下需要买的票,那他将会离开队伍。

返回位于位置k(下标从0开始)的人完成买票需要的时间(以秒为单位)。

示例1:输入:tickets=[2,3,2],k=2输出:6解释:-第一轮,队伍中的每个人都买到一张票,队伍变为[1,2,1]。-第二轮,队伍中的每个都又都买到一张票,队伍变为[0,1,0]。位置2的人成功买到2张票,用掉3+3=6秒。示例2:输入:tickets=[5,1,1,1],k=0输出:8解释:-第一轮,队伍中的每个人都买到一张票,队伍变为[4,0,0,0]。-接下来的4轮,只有位置0的人在买票。位置0的人成功买到5张票,用掉4+1+1+1+1=8秒。

提示:

n==tickets.length1<=n<=1001<=tickets[i]<=1000<=k

解题思路

classSolution:deftimeRequiredToBuy(self,tickets:List[int],k:int)->int:res=0whileTrue:forindex,valinenumerate(tickets):#print(tickets,res)ifval==0:continueelse:res+=1tickets[index]-=1ifindex==kandtickets[index]==0:returnresreturnresif__name__=='__main__':tickets=[2,3,2]k=2res=Solution.timeRequiredToBuy(tickets,k)print(res)



展开

上一篇:奋战到魔兽最后一刻, 你记得何时踏入艾泽拉斯大陆的么?

下一篇:《死亡空间重制版》 PC 版将于 26 日开启预载, XSX|S 已经开始

相关内容更多
热门攻略更多
返回顶部