1 クラスのソリューション: 2 DEF maxSatisfied(自己、顧客:' リスト[INT] '、気難しい:' 一覧の[int] '、X:INT) - > INT : 3 N = LEN(顧客) 4 プリサム= 0 5 J = 0 6 のための I における範囲(N): 7 場合気難しい[I] == 0 : 8 プリサム+ = 顧客[i]は 9 J = + 1 10 ELIFのJ < X: 11 プリサム+ = 顧客[i]が 12 J + = 1 13 14 maxsati = プリサム 15 のための I における範囲(0、N- X): 16 なら気難しい[I] == 1 : 17 プリサム- = 顧客[i]が 18 あれば不機嫌は[iが+ X] == 1 : 19 プリサムは+ =顧客[I + X] 20 maxsati = MAX(プリサム、maxsati) 21 22 返す maxsati
このアイデアは、私は穏やかな状態で全てを想定し、Xをし+ I間隔中に、ゲストの満足度が加算され、スライディングウィンドウの問題です。
ウィンドウは、その後、元の状態に応じて、離れて窓の左端、右端の新しいアクセスウィンドウから、右にスライドさせて加算または減算することが決定されます。
特定決意ロジックコードの15〜20行。