#41463: C++詳解


toseanlin@gmail.com (Dr. SeanXD)

School : 康橋雙語學校
ID : 158065
IP address : [73.68.145.170]
Last Login :
2025-04-13 08:52:22
k571. pB. 關於第二道題這件事 -- 112學年度hgsh校內賽 | From: [220.136.106.229] | Post Date : 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