1851 · 購買通行證


描述

亞歷克斯計划參觀博物館,並在櫃台購買相同的通行證。管理員決定不出售團體通行證,一次只提供一張通行證。如果訪客需要一張以上的通行證,他/她必須再次重新排隊到櫃台並購買下一張通行證。亞歷克斯想購買許多通行證。訪客順序和每位訪客需要的通行證數量是已知的,亞歷克斯需要多少時間才能買到所有的通行證?Alex在隊列中的位置將被給定,每次交易需要1個時間單位。可以忽略每次轉到行后面所需的時間。

|arr|<=100000 arr[i]<=10000

樣例

樣例 1:

輸入:
arr=[1,2,5],k=1
輸出:
4
解釋:
有3個人 0,1,2 在排隊。亞歷克斯的編號是1
第一個時間點,隊列為0(1)<-1(2)<-2(5),編號0獲得門票。
第二個時間點,隊列為1(2)<-2(5) 亞克斯獲得門票,並返回隊伍最末端
第三個時間點,隊列為2(5)<-1(1) 編號2獲得門票,並返回隊伍最末端
第四個時間點,隊列為1(1)<-2(4) 亞克斯獲得門票,他已經買到了所需要的所有門票

樣例 2:

輸入:
arr=[3,2,1], k = 0,
輸出:
6
class Solution:
    """
    @param arr: the line 
    @param k: Alex place
    @return: the time when Alex requires to buy all passes
    """
    def buyPasses(self, arr, k):
        # Write your code here.
        count = 0
        i = 0
        length = len(arr)
        while True:
            if arr[k] == 0:
                return count

            if arr[i] != 0:  # != 0, 此時才需要時間。=0跳過
                arr[i] -= 1
                count += 1

            i += 1
            if i == length:
                i = 0
執行結果: Time Limit Exceeded 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM