クイーンズleetcode 51 N(バックトラック)

書式#include <math.h>の
 クラスのソリューション{
 プライベート
    ベクトル < 文字列 > ソリューション。
    ベクトル <ベクトル< int型 >> 結果。
    ベクトル < int型 > の列。
公共ブールチェック(int型の列、int型COL){
         ためINT R = 0 ; R <行; R ++ 場合(列[R] == COL ||(行R)== ABS(列[R] - COL))
                 を返す 返す ; 
    } 
    ボイドバックトラッキング(int型のn、int型の列){
         場合(行== N){ 
            result.push_back(列)。
            返します
        }   
        のためのINT COL = 0、COL <N; COL ++ ){ 
            columns.push_back(COL)。
            もし(チェック(行、列))
                バックトラック(N、行 + 1 )。
            columns.pop_back(); 
        } 
    } 
    ベクトル <ベクトル< ストリング >> solveNQueens(INTN){ 
        (バックトラックN、0 ); 
        ベクトル <ベクトル< 文字列 >> RES。
        (オート&V:結果){ 
            ベクトル < ストリング > S。
            (オート&C:V){
                 文字列 T(N、' ' ;)
                T [C] = ' Q ' 
                s.push_back(T)。
            } 
            res.push_back(S); 
        } 戻りRESと、
    } 
}。
        

問題解決のアプローチを学びhttps://leetcode-cn.com/problems/n-queens/solution/c-hui-su-fa-by-da-li-wang-4/

 

おすすめ

転載: www.cnblogs.com/robertgao/p/11628692.html