leetcode-221-最大の広場

件名の説明:


 方法の一つ:動的計画

クラスソリューション:
     DEF maximalSquare(自己、行列:リスト[リスト[STR]]) - > INT:
         なら ないマトリックス:
             リターン0  = LEN(行列)
        COL = LEN(行列[0])
        DP = [0  _ 範囲(COL + 1)] のための _ 範囲(行+ 1 )] 
        RES = 0
         のための:範囲(行)
             のために、J における範囲(COL):
                 もし行列[I] [J] == ' 1 ' 
                    DP [I +1] [J + 1] =分(DP [I + 1] [j]は、DP [I]、[J]、DP [I] [ J + 1])+ 1つの
                    RES = MAX(RES、DP [I + 1] [J + 1] ** 2 リターン RES
クラスソリューション:
     DEF maximalSquare(自己、行列:リスト[リスト[STR]]) - > INT:
        RES = 0
         のための I における範囲(LEN(行列))
             のために、J における範囲(LEN(行列[0])):
                行列[I] [J] = INT(行列[I] [J])
                 場合 iは== 0 または J == 0:
                    RES = MAX(RES、行列[I] [J])
                     続ける

                場合行列[I] [ J] == 0:継続

                行列[I] [J]=分(行列[I-1] [j]は、行列[I]、[J-1]、行列[I-1] [J-1])+ 1つの               
                RES = MAX(RES、行列[I] [J] )

        戻り RES ** 2

 

おすすめ

転載: www.cnblogs.com/oldby/p/11622393.html