#42826: C++詳解


toseanlin@gmail.com (Dr. SeanXD)

學校 : 康橋雙語學校
編號 : 158065
來源 : [24.147.249.5]
最後登入時間 :
2024-10-08 11:06:51
e289. 美麗的彩帶 -- APCS | From: [24.147.249.5] | 發表日期 : 2024-10-06 12:01

因為數字最大會是 10 的 150 次方,所以要用字串的方式來收彩帶的數字。使用 Map 來紀錄每個區間的數字數量,並且宣告一個變數 number 來紀錄目前的區段中有多少個不同的數字。

跑一個 For迴圈 從 0 到 N-1,並且每次都將新的資料紀錄到 Map 中並且把最左邊的資料做刪除,如果刪除的資料中的 Map 值是 0,那就 number–,代表區段中少了一個不同的數字。並且如果新加入的數字的 Map 值是 1,代表是一個全新的數字 number++,每次迴圈都要判斷 number 是否等於 M,如果有等於的話就將答案 +1。

 

範例程式碼

 
ZeroJudge Forum