★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
]➤[マイクロチャネルパブリック番号(WeiGanTechnologies)をあえてします
➤ブログパークアドレス:サンチンウィングチー(https://www.cnblogs.com/strengthen/)
➤GitHubアドレス:https://github.com/strengthen/LeetCode
元のアドレス➤:HTTPS://www.cnblogs。 COM /強化/ P / 11484247.html
アドレスがリンクブログパーク龍シャンカイはない場合➤、それは記事の著者をクロールすることができます。
➤テキストは、更新を変更されました!元のアドレスが読むことを強く推奨クリック!サポート作者!オリジナルをサポートしています!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
マトリックス検討 M
寸法とを width * height
各セルに値を有するように、 0
または 1
、及び任意の正方サブ行列 M
サイズが sideLength * sideLength
最大で有する maxOnes
もの。
行列は、ものの最大数を返します M
することができます。
例1:
入力:幅= 3、高さ= 3、sideLength = 2、maxOnes = 1 出力:4 説明: 3×3行列で、NO 2×2サブマトリクスは、1以上いずれかを有することができません。 4つのものを持って最善の解決策は次のとおりです。 [1,0,1] 、[0,0,0] 、[1,0,1]
例2:
入力:幅= 3、高さ= 3、sideLength = 2、maxOnes = 2 出力:6 説明: [1,0,1] [1,0,1] [1,0,1]
制約:
1 <= width, height <= 100
1 <= sideLength <= width, height
0 <= maxOnes <= sideLength * sideLength
今寸法ある width * height
マトリックスのは M
、マトリックスの各セルの値ではない 0
こと 1
。
さらに、行列 M
サイズの各 sideLength * sideLength
正方形サブアレイ、1
数が超えてはなりません maxOnes
。
あなたは、最大数を持つことができます行列を計算するアルゴリズムを設計します 1
。
例1:
入力:幅= 3、高さ= 3 、sideLength = 2、maxOnes = 1 出力:4 説明: トピック要件は3×3の行列で、各数はサブアレイ1 2 * 2が1を超えませんA。 次のように行列M 1で最高の解決策は、4つまで持つことができる: [1,0,1] [0,0,0] [1,0,1]
例2:
入力:幅= 3、高さ= 3 、sideLength = 2、maxOnes = 2 出力:6 説明: [1,0,1] [1,0,1] [1,0,1]
ヒント:
1 <= width, height <= 100
1 <= sideLength <= width, height
0 <= maxOnes <= sideLength * sideLength
1 クラスソリューション{ 2 FUNC maximumNumberOfOnes(_幅:INT、_高さ:INT、_ sideLength:INT、_ maxOnes:INT) - > のInt { 3つの VARの RES:[INT] = [INT]() 4 のための I に 0 .. < sideLength 5 { 6 のための J で 0 .. < sideLength 7 { 8 res.append(((幅-I- 1)/ sideLength + 1)*((高さJ- 1)/ sideLength + 1 )) 9 } 10 } 11 :RESの=は(>によってres.sorted ) 12件 のVaRのInt = ANS 0 13の ための I に 0 <.. maxOnes 14 { 15 + = ANS RES [I] 16 } 17 リターンANS 18 } 19 }