leetcode-158周のレースは-5223-クイーンズの王を攻撃することができます

件名の説明:

 

 

 

 彼の投稿:

クラスのソリューション:
     DEF queensAttacktheKing(自己、女王:リスト[一覧[INT]]、王:リスト[INT]) - > 一覧[一覧[INT]:
         もし ない女王:戻る[] 
        のres = [] 
        行、列 = 8.8
         デフヘルパー(I、J、クイーンズ):
             もし 0 <= iは<ROW 及び 0 <J <COL および [I、J] クイーンズ:
                 返すリターン
        OPT = [0,1]、[1 、0]、[ - 1,0]、[0、-1]、[1,1]、[1、-1]、[ - 1,1]、[ - 1、-1 ]]
         のために、X、YOPT:
            私は王[0] + = Xの
            J =王[1] + Y
             ながら 0 <= iが<行及び 0 <= jの< COL:
                 もし [I、J] クイーンズ:
                    res.append([I、 J])
                    破る
                
                    I + = X 
                    J + = Yの
                    
        リターンRES
                
            

最適化:

クラス溶液(オブジェクト):
     DEF queensAttacktheKing(自己、クイーン、キング):
        ANS = [] 
        Q =セット([タプル(x)のための X 女王])
         のための I における [-1,0,1 ]
             のための J  [-1,0,1 ]:
                 もし!I = 0 又は J =!0:
                    Xは、Yが = ながら 0 <= xの<= 7 及び 0 <= Y <= 7 もし(x、y)の中の Q :
                            ans.append([X、Y])
                            ブレーク
                        X + = Iの
                        Y + = Jの
         リターン ANS

 

おすすめ

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