经典N皇后

news/2024/11/9 4:56:35/

 力扣51 N皇后

 

不能同行,同列,也不能同45度斜线

 

public  void  dfs(cheseborad,n,row) //n表示棋盘的大小,row表示现在列举到了第几行
{if(row==n){result.add();return;}for(int i=0;i<n;i++)//下一行的每一个数都可能被选中{if(isValid(row,i,cheseboard,n)==true)//第row行第i个位置,是否合法{cheseboard[row][i]='Q';dfs(cheseboard,n,row++);//下一行cheseboard[row][i]='.';}}
}
class Solution {List<List<String>> res = new ArrayList<>();public List<List<String>> solveNQueens(int n) {char[][] chessboard = new char[n][n];for(int i=0;i<n;i++){for(int j=0;j<n;j++){chessboard[i][j]='.';}}backTrack(n, 0, chessboard);return res;}public void backTrack(int n, int row, char[][] chessboard) {if (row == n) {res.add(Array2List(chessboard));return;}for (int col = 0;col < n; ++col) {if (isValid (row, col, n, chessboard)) {chessboard[row][col] = 'Q';backTrack(n, row+1, chessboard);chessboard[row][col] = '.';}}}public List Array2List(char[][] chessboard) {List<String> list = new ArrayList<>();for (char[] c : chessboard) {list.add(String.copyValueOf(c));}return list;}public boolean isValid(int row, int col, int n, char[][] chessboard) {// 检查列for (int i=0; i<row; ++i) { // 相当于剪枝if (chessboard[i][col] == 'Q') {return false;}}// 检查45度对角线for (int i=row-1, j=col-1; i>=0 && j>=0; i--, j--) {if (chessboard[i][j] == 'Q') {return false;}}// 检查135度对角线for (int i=row-1, j=col+1; i>=0 && j<=n-1; i--, j++) {if (chessboard[i][j] == 'Q') {return false;}}return true;}
}


http://www.ppmy.cn/news/814009.html

相关文章

深度搜索——n皇后

n皇后问题就是在n*n的棋盘上放置n个皇后&#xff0c;使她们之间不在同一行同一列&#xff0c;且不在同一个对角线上 问&#xff1a;共有多少种摆法&#xff1f; 首先分析问题&#xff1a; 直观的来说&#xff0c;我们可以想到直接使用暴力回溯出符合条件的解如何暴力&#x…

51. N 皇后

51. N 皇后 按照国际象棋的规则&#xff0c;皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上&#xff0c;并且使皇后彼此之间不能相互攻击。 给你一个整数 n &#xff0c;返回所有不同的 n 皇后问题 的解决方…

深搜——八皇后

原题链接 八皇后 题目 题目的大体意思就是给你一个n*n的棋盘&#xff0c;在棋盘上放置n个皇后&#xff0c;使得不同行&#xff0c;不同列&#xff0c;不同对角线&#xff0c;最后打印前 3 个解。最后一行是解的总个数。 分析 这个题就是一个典型的深搜&#xff0c;回溯。从…

半生铁总宪,三千美娇娘(修改中...)。

三年清知府&#xff0c;十万雪花银。 半生铁总宪&#xff0c;三千美娇娘。 七品小县令&#xff0c;一朝城中坐。 金银不知数&#xff0c;莺燕满偏厢。 转载于:https://www.cnblogs.com/chuyf/archive/2006/04/07/369673.html

“触摸文明印记 感悟非遗魅力” 活字印刷体验活动

为传承中华传统文化&#xff0c;弘扬非物质文化遗产&#xff0c;近日&#xff0c;运河街道天衢西路社区携手新领航社工开展“触摸文明印记 感悟非遗魅力”活字印刷体验活动&#xff0c;带领青少年们穿越时空&#xff0c;一起用双手触摸跨越千年的记忆&#xff0c;近距离接触古老…

出招分析_饿狼传说9狼之印记

分析 28fc4 出招进入 a4 Fighter1 100400 0 0002 8fc4c2 8000 000016 0000f6 0000D4 002A C85C7e 047f clrbbbc 01bd 0120 x坐标2C x坐标73 人物大小6a 002a 318a6062 c162 c067 405e 0405 15354 (2170E6)0026ff9854 (21778E)0026ffA876 0021 33467a 2170ec 2177907a 12170ec…

拾光·印记婚纱摄影管理系统的设计与实现mysql

原文链接&#xff1a;请点这里 项目描述 本系统实现了拾光印记婚纱摄影管理系统的设计与实现mysql的基本功能&#xff0c;主要功能如下。 技术支持 eclipse、SSH、Jdk1.8、jsp、 mysql 系统提供的具体功能如下&#xff1a; 登录注册样片欣赏每日照客群聊留言板人员管理评…

印记中文

https://docschina.org/ 转载于:https://www.cnblogs.com/jinhh/p/8616907.html