首页 > 其他 > 详细

N皇后

时间:2021-09-07 16:15:42      阅读:9      评论:0      收藏:0      [点我收藏+]
class Solution {
public:
    vector<vector<string>> res;
    vector<vector<string>> solveNQueens(int n) {
        vector<string> track;
        string s="";
        for(int i=0;i<n;i++)
        {
            s+=.;
        }
        for(int i=0;i<n;i++)
        {
            track.push_back(s);
        }
        DFS(n,0,track);
        return res;
    }
    void DFS(int n,int index,vector<string>& track)
    {
        if(index==n)
        {
            res.push_back(track);
            return;
        }
        for(int i=0;i<n;i++)
        {
            if(!valid(track,index,i))
            {
               continue;
            }
            track[index][i]=Q;
            DFS(n,index+1,track);
            track[index][i]=.;
        }
    }
    bool valid(vector<string>map,int row,int col)
    {
        for(int i=0;i<row;i++)
        {
            if(map[i][col]==Q)
            {
                return false;
            }
        }
        for(int i=row-1,j=col-1;i>=0 &&j>=0;i--,j--)
        {
            if(map[i][j]==Q)
            {
                return false;
            }   
        }
        for(int i=row-1,j=col+1;i>=0 &&j<map.size();i--,j++)
        {
            if(map[i][j]==Q)
            {
                return false;
            }   
        }
        return true;
    }
};

 

N皇后

原文:https://www.cnblogs.com/libin123/p/15237690.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!