#41463: C++詳解


toseanlin@gmail.com (Dr. SeanXD)

學校 : 康橋雙語學校
編號 : 158065
來源 : [24.147.249.5]
最後登入時間 :
2024-10-28 09:54:40
k571. pB. 關於第二道題這件事 -- 112學年度hgsh校內賽 | From: [220.136.106.229] | 發表日期 : 2024-07-29 09:23

預設三個變數 l = 0、zero = 0、ans = -99999。跑一個 For迴圈 for (int r = 0; r<N; r++),l 代表左邊界,r 代表右邊界。當 r 位置不是 2 時,將 zero++,並且判斷 zero 是否有 > K,如果有的話,就要跑一個 While 迴圈,尋找上一個 非 2 數字的下一個 2 在哪裡,如果 l 位置的數字是 2 ,則 l++,否則就將 While迴圈 break,並且在 While迴圈外面再進行一次 l++。每一次不管是不是 2 都需要判斷 r – l +1 是否為最大值。

 

範例程式碼

 
ZeroJudge Forum