• N-Queens


    The n-queens puzzle is the problem of placing n queens on an n×n chessboard such that no two queens attack each other.

    Given an integer n, return all distinct solutions to the n-queens puzzle.

    Each solution contains a distinct board configuration of the n-queens' placement, where 'Q' and '.' both indicate a queen and an empty space respectively.

    For example,
    There exist two distinct solutions to the 4-queens puzzle:

    [ [".Q..", // Solution 1 "...Q", "Q...", "..Q."], ["..Q.", // Solution 2 "Q...", "...Q", ".Q.."] ]
    class Solution {
    public:
        vector<vector<string> > solveNQueens(int n) 
        {
            vector<vector<string>> result;
            if(n==0return result;
            int loc[n];
            generate(result,loc,n,0);
            return result;
        }
        void generate(vector<vector<string>>& result,int* loc,int n,int row)
        {
            if(row==n)
            {
                vector<string> v;
                for(int i=0;i<n;i++)
                {
                    string s;
                    for(int j=0;j<n;j++) s=s+".";
                    s[loc[i]]='Q';
                    v.push_back(s);
                }
                result.push_back(v);
                return;
            }
            for(int i=0;i<n;i++)
            {
                int j;
                for(j=0;j<row;j++)
                    if(loc[j]==i || row-j==loc[j]-i || row-j==i-loc[j])
                        break;
                if(j==row)
                {
                    loc[row]=i;
                    generate(result,loc,n,row+1);
                }
            }
        }
    };
  • 相关阅读:
    java项目数据库从oracle迁移到mysql 中 java部分的一些修改
    mysql表名等大小写敏感问题、字段类型timestamp、批量修改表名、oracle查询历史操作记录等
    navicat premium相关应用(将oracle数据库迁移到mysql等)
    Java byte 类型的取值范围是-128~127
    idea中debug:
    chrome里面模拟手机上打开网页的场景方法
    Dealloc weak nil
    用七牛sdk传递图片到七牛服务器
    iOS block 本质研究
    UIWebView JSContext相关问题
  • 原文地址:https://www.cnblogs.com/erictanghu/p/3759385.html
Copyright © 2020-2023  润新知