0と1で満たされた2Dバイナリ行列を考えると、1つだけのその面積を返すを含む最大の広場を見つけます。
例:
入力: 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 出力:4
クラスソリューション{ 公共 のint maximalSquare(CHAR [] []行列){ 場合(マトリックス== NULL || matrix.length == 0 ){ 戻り 0 。 } INT行= matrix.length。 INT COL =行列[0 ] .LENGTH。 INT [] [] = SQR 新しい INT [行+ 1] [COL + 1 ]。 int型のres = 0 ; 以下のために(INT ; I <=行; iが1 = I ++ ){ ため(INT J = 1; J <= COL; J ++ ){ 場合(行列[I - 1] [J - 1] == '1' ){ SQR [I] [J] = Math.min(Math.min(SQR [I - 1] [j]は、SQR [I]、[J - 1])、SQR [I - 1] [J - 1])+ 1 ; RES = Math.max(RES、SQR [I] [J])。 } } } リターン解像度は* 解像度を。 } }