景區檢票排隊:高效驗證門票數量的遍歷算法
本文介紹一種利用遍歷算法高效解決景區檢票排隊問題的方法。該問題需要判斷每個旅游團的門票數量是否與實際人數相符。輸入數據為一個數字序列,代表隊伍情況:導游的數字代表其持有的門票數,游客的數字代表游客編號,0 代表空位。目標是判斷所有旅游團的門票是否都恰好夠用。
無需復雜的算法,簡單的遍歷即可高效解決。算法核心思路:依次遍歷隊伍,識別導游并根據其門票數量驗證團隊人數。
算法步驟:
- 讀取隊伍長度 n 和隊伍情況列表 team。
- 初始化 ticket_count 為 0,記錄導游剩余門票數。
- 遍歷 team 列表:
- 遇到 0 (空位),跳過。
- 遇到數字 x 且 x == i + 1 (i為當前索引),表示找到導游,更新 ticket_count 為 x。
- 遇到數字 x 且 x != i + 1,表示游客,ticket_count 減 1,表示消耗一張門票。
- 判斷 ticket_count 是否為 0:
- 若為 0,則門票數量正確,輸出 “YES”。
- 否則,輸出 “NO”。
python 代碼實現:
n = int(input()) team = list(map(int, input().split())) ticket_count = 0 for i in range(n): if team[i] == 0: continue if team[i] == i + 1: ticket_count = team[i] else: ticket_count -= 1 if ticket_count == 0: print("YES") else: print("NO")
該代碼簡潔明了地實現了遍歷算法,通過簡單的計數和判斷,高效地驗證了門票數量的正確性。 其效率高,易于理解,避免了不必要的復雜計算。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END