バックトラックオファー安全性を証明するために - ロボット-pythonの運動の範囲を

タイトル説明

接地グリッドと、m行n列。0,0グリッド座標からロボットが移動し、毎回四方セルを上下、左右が、グリッドの行および列の座標を入力することができないだけではビットkの数の合計よりも大きいです。kが18である場合、例えば、ロボットが3 + 3 + 5 + 7 = 18から、ボックス(35、37)を入力することができます。3 + 3 + 5 + 8 = 19しかし、それは、ボックス(35、38)を入力することができません。ロボットは、格子の数に到達することができるだろうか?
- * -コーディング:UTF-8 - * - 
クラスソリューション:
     デフ __init__ (自己):
        self.count = 0
     DEF :movingCount(自己、閾値、行、colsの)
         #の書き込みコードここで 
        ARR = [1  I 範囲(行)] のための J における範囲(COLS)] 
        self.count_path(ARR、0,0、閾値)
        戻りself.count
     DEF count_path(自己、ARR、I、J、K):
         もし I <0 または J < 0 又は I> = LEN(ARR)または   J> =LEN(ARR [0]):
             リターン 
        TMPI = リスト(マップ(int型、リスト(STR(I))))
        tmpj = リスト(マップ(int型、リスト(STR(J))))
         であれば合計(TMPI)+合計(tmpj)> K または [I] [J] = 1 ARR! リターン
        ARR [I] [J] = 0 
        self.count + = 1 
        self.count_path(ARR、I +1 、J、K)
        self.count_pathを(ARR、I -1 、j、k)は
        self.count_path(ARR、I、J +1 、K)
        self.count_path(ARR、I、J -1、K)

 

おすすめ

転載: www.cnblogs.com/ansang/p/11873447.html