LeetCode-51&52.N-Queens
来源:互联网 发布:js 通过代理解决跨域 编辑:程序博客网 时间:2024/05/22 12:55
51 https://leetcode.com/problems/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..","...Q","Q...","..Q."],["..Q.","Q...","...Q",".Q.."]]
public class Solution { public IList<IList<string>> SolveNQueens(int n) { IList<IList<string>> res = new List<IList<string>>(); IList<string> list = new List<string>(); string s = ""; for (int i = 0; i < n; i++) s += "."; for (int i = 0; i < n; i++) list.Add(s); PlaceQ(res, list, n, 0); return res; } private void PlaceQ(IList<IList<string>> res, IList<string> list,int n,int row) { if (row == n) { res.Add(new List<string>(list)); return; } for (int col = 0; col < n; col++) if (isValid(list,n,row,col)) { list[row]=list[row].Remove(col,1).Insert(col, "Q"); PlaceQ(res, list, n, row + 1); list[row] = list[row].Remove(col,1).Insert(col, "."); } } private static bool isValid(IList<string> list, int n, int row, int col) { for (int i = 0; i < row; i++) if (list[i][col] == 'Q') return false; for (int i = row - 1, j = col - 1; i >= 0 && j >= 0; i--, j--) if (list[i][j] == 'Q') return false; for (int i = row - 1, j = col + 1; i >= 0 && j < n; i--, j++) if (list[i][j] == 'Q') return false; return true; }}
52 https://leetcode.com/problems/n-queens-ii/
求51题解中的个数
0 0
- LeetCode-51&52.N-Queens
- Leetcode-52.N-Queens
- [leetcode 51] N-Queens
- LeetCode(51) N-Queens
- leetcode-51-N-Queens
- leetcode 51: N-Queens
- LeetCode 51: N-Queens
- LeetCode 51 - N-Queens
- Leetcode 51 N-Queens
- LeetCode 51 N-Queens
- leetcode(51):N-Queens
- LeetCode 51 N-Queens
- Leetcode 51 N-Queens
- LeetCode 51/52. N-Queens i, ii
- leetcode 51|52. N-Queens 1|2
- leetcode 52. N-Queens II & leetcode 51 N-Queens (N皇后问题)
- LeetCode 52. N-Queens II
- LeetCode --- 52. N-Queens II
- Html基础知识
- jQuery
- 前端学习刷题中
- pageRank.py的计算
- 二叉树的非递归遍历
- LeetCode-51&52.N-Queens
- php面试题之二——数据结构和算法(高级部分)
- 【mahapps.metro】WPF窗体关闭,提示用户是否退出对话框
- SVN中显示文件状态字母的含义
- 个人计算机编程环境配置
- DexClassLoader的使用
- 详解position的四个属性
- 提高PHP代码质量的36个技巧
- 技术常用网址