Leetcode 51. N-Queens
来源:互联网 发布:易语言餐饮系统源码 编辑:程序博客网 时间:2024/06/03 22:25
public class Solution { public static boolean canPlace(int row, int col, List<Integer> loc) { // new Queen is at column of some other Queen which is not a valid position, // make sure that there is no duplicate in the loc list if (loc.contains(col)) return false; // new Queen is at the diagonal of some other Queen, // if |i - j| == |loc[i] - loc[j]| means tow Queens are at same diagonal for (int i=0; i<loc.size(); i++) if (Math.abs(i - loc.size()) == Math.abs(loc.get(i) - col)) return false; return true; } public static void nQueens(int n, int row, List<Integer> loc, List<String> list, List<List<String>> ret) { if (row == n) { ret.add(new ArrayList<>(list)); // reaches end, add the current string list to the result return; } else { for (int col=0; col<n; col++) { // search from column 0 to column n-1 for a given row if (canPlace(row, col, loc)) { loc.add(col); char[] tmp = new char[n]; Arrays.fill(tmp, '.'); tmp[col] = 'Q'; String tmpString = new String(tmp); list.add(tmpString); nQueens(n, row+1, loc, list, ret); // move to the next row list.remove(list.size()-1); loc.remove(loc.size()-1); } } } } public List<List<String>> solveNQueens(int n) { List<List<String>> ret = new ArrayList<>(); nQueens(n, 0, new ArrayList<Integer>(), new ArrayList<String>(), ret); //System.out.println(cnt); return ret; }}
0 0
- 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. 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
- Android Studio 查看整个项目的放法数
- 招稍微资深一点的Java开发一名
- map封装在json中
- Django项目的创建及基本使用
- Echarts异步加载url无法访问至后台,异步加载跨域问题。
- Leetcode 51. N-Queens
- 阿里云格式化挂载数据盘
- jQuery中json对象与json字符串互换
- linux make的理解
- OSX 10.12 安装cocoa pods简述
- 机器学习:提升方法AdaBoost算法
- NSE分析恶意代码
- Android中的SQLiteDatabase,ContentProvider和ContentResolver
- Android studio 混淆