题解 | #N皇后问题#

N皇后问题

https://www.nowcoder.com/practice/c76408782512486d91eea181107293b6

import java.util.*;


public class Solution {
    /**
     * 
     * @param n int整型 the n
     * @return int整型
     */
    int count = 0;
    public int Nqueen (int n) {
        // write code here
        //创建一个二维数组用来模拟棋盘并占位
        int[][] board = new int[n][n];
        
        dfs(n, 1, board);
        return count;
    }
    public void dfs(int n, int row, int[][] board) {
        //如果row等于n + 1,则计数+1
        
        if (row > n) {
            count++;
            return;
        }
        //遍历本行棋盘
        for (int i = 0; i < n; i++) {
            //System.out.print("行:" + row);
            //System.out.print("列:" + (i+1) + "   ");
            if (board[row - 1][i] == 1) {
                continue;
            }
            int[][] newBoard = new int[n][n];
            for (int q = 0; q < n; q++){
                for (int p = 0; p < n; p++) {
                    newBoard[q][p] = board[q][p];
                }
            }
            //将该棋子下方同列同斜线所有格子都标记
            for (int below = row -1; below < n; below++) {
                //正下方标记
                newBoard[below][i] = 1;
                //左斜下方标记
                if (i - (below- row + 1) >= 0) {
                    newBoard[below][i - (below-row + 1)] = 1;
                }
                //右斜下方标记
                if (i + (below- row + 1) < n) {
                    newBoard[below][i + (below-row + 1)] = 1;
                }
            } 
            //进入下一层
            
            dfs(n,row+1,newBoard);    
        }   
    }
}

全部评论

相关推荐

05-21 18:32
已编辑
湖南工学院 Java
这条干货多数是给i人朋友们分享的,知道你们开不了口,可以试试我说的这些方法1.调整心态:接受初期的尴尬刚开始进入一个新环境,双方都属于一个认识对方的过程,尴尬瞬间是难免存在的。首先,你要接受尴尬,允许自己犯错,实习期本身就是来学习的,同事也不会期待你完美无缺。另外,不要太以自我为中心,其实你的尴尬瞬间也许没有人在意,是因你的对自己的关注而放大了不安全感。2.准备一些防止尴尬的话题和工作相关的,可以以请教的方式开启。比如:xx,这个表格我没有看懂,可以给我讲一下吗非工作的话题,可以聊聊中午吃什么、当地的天气如何、通勤远不远之类的。比如:附近有什么好吃的外卖吗?我刚来还不太熟悉3.每日练习,逐渐打...
sweep^0416:内向人,遇到好的领导很重要,我之前一段实习组里全e人就我一个i 刚入职第一周还会带着我聊一下,后面越来越冷落我,实在受不了,每天去到就想亖,mentor还要pua说是我融入不了集体(我真的以为是我的问题)后面我离职了,去了现在这一家公司,我的领导也是e人,但是我融入的很好,组里的人全都很好很好,也不会出现小团体什么的,所以说内向不是不融入环境的根本,就是公司跟带教的问题
点赞 评论 收藏
分享
我就是0offer糕手:北大不乱杀
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务