有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)
解题思路
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 已经开始
哈哈哈 子弹越打越多了
.
《刺客信条: 黑旗 记忆重置》回应DLC比本体贵: DLC非必须
当臭猫扶贫神秘嘉豪号主!
原神: 7.0奥黛塔定位反转! 并非木偶专属, 冰神设计成最大悬念
哪辆车能不被28吨钢卷压成废铁? 哪辆车能不被28吨钢卷压成废铁?
原神: 新超导木偶队顶配配装攻略! 告别刮痧与充能卡顿