https://leetcode.com/problems/n-queens/

 class Solution {
public:
void dfs(vector<vector<string>> &ret, vector<vector<char>> map,int i, int j){
if(i==map.size()-){
vector<string> ans; ans.clear();
for(int ki=;ki<map.size();++ki){
string s="";
for(int kj=;kj<map[].size();++kj){
s+=map[ki][kj];
}
ans.push_back(s);
}
ret.push_back(ans);
return;
} vector<vector<char>> tmp(map.size());
for(int i=;i<tmp.size();++i) tmp.resize(map.size());
tmp = map;
for(int k=;k<map[].size();k++){ if(map[i+][k]=='.') continue; for(int col=;col<map[].size();++col){
if(map[i+][col]==' ') map[i+][col]='.';
}
for(int row=i+;row<map.size();++row){
if(map[row][k]==' ') map[row][k]='.';
}
for(int row=i+,col=k+;row<map.size() && col<map[].size();++row,++col){
if(map[row][col]==' ') map[row][col]='.';
}
for(int row=i+,col=k-;row<map.size() && col>=;++row,--col){
if(map[row][col]==' ') map[row][col]='.';
}
map[i+][k]='Q'; dfs(ret,map,i+,k); map=tmp;
} }
vector<vector<string>> solveNQueens(int n) {
vector<vector<string>> ret;
if(n==) return ret; vector<vector<char>> map(n);
for(int i=;i<map.size();++i) map[i].resize(n);
for(int i=;i<map.size();++i){
for(int j=;j<map[i].size();++j) map[i][j]=' ';
} vector<vector<char>> tmp(map.size());
for(int i=;i<tmp.size();++i) tmp.resize(map.size());
tmp = map;
for(int k=;k<map[].size();k++){
for(int col=;col<map[].size();++col) map[][col]='.';
for(int row=;row<map.size();++row) map[row][k]='.';
for(int row=,col=k+;row<map.size() && col<map[].size();++row,++col) map[row][col]='.';
for(int row=,col=k-;row<map.size() && col>=;++row,--col) map[row][col]='.';
map[][k]='Q'; dfs(ret,map,,k); map=tmp;
} return ret;
}
};

leetcode@ [51/52] N-Queens的更多相关文章

  1. LeetCode(52) N-Queens II

    题目 Follow up for N-Queens problem. Now, instead outputting board configurations, return the total nu ...

  2. 报错:(未解决)NoReplicaOnlineException: No replica in ISR for partition __consumer_offsets-8 is alive. Live brokers are: [Set(50, 51, 52)], ISR brokers are: [68]

    报错背景: CDH集成kafka插件之后,启动kafka时就报出此错误. 报错现象: -- ::, ERROR state.change.logger: [Controller epoch=] Ini ...

  3. leetcode 51. N-Queens 、52. N-Queens II

    51. N-Queens 使用isValid判断当前的位置是否合法 每次遍历一行,使用queenCol记录之前行的存储位置,一方面是用于判断合法,另一方面可以根据存储结果输出最终的结果 class S ...

  4. leetcode 51. N皇后 及 52.N皇后 II

    51. N皇后 问题描述 n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击. 上图为 8 皇后问题的一种解法. 给定一个整数 n,返回所有不同的 n 皇后 ...

  5. [Leetcode][Python]52: N-Queens II

    # -*- coding: utf8 -*-'''__author__ = 'dabay.wang@gmail.com' 52: N-Queens IIhttps://oj.leetcode.com/ ...

  6. 【一天一道LeetCode】#52. N-Queens II

    一天一道LeetCode系列 (一)题目 Follow up for N-Queens problem. Now, instead outputting board configurations, r ...

  7. [LeetCode] 51. N-Queens N皇后问题

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

  8. LeetCode: 51. N-Queens(Medium)

    1. 原题链接 https://leetcode.com/problems/n-queens/description/ 2. 题目要求 游戏规则:当两个皇后位于同一条线上时(同一列.同一行.同一45度 ...

  9. 【LEETCODE】52、数组分类,简单级别,题目:717,661,746,628,643,849

    package y2019.Algorithm.array; /** * @ProjectName: cutter-point * @Package: y2019.Algorithm.array * ...

随机推荐

  1. sbrk and coreleft

    一.sbrk 函数来源:TC2.0.Linux 函数名: sbrk 功 能: 增加程序可用数据段空间,增加大小由参数 incr决定 . 返回值:函数调用成功返回一指针,指向新的内存空间.函数调用失败则 ...

  2. Lucene基础(四)-- 结合数据库使用

    需求 很多时候我们在用数据库的需要使用模糊查询,我们一般会使用like语句来做,然而这样的做的效率不是很多(很抱歉我们亲自去测,很多都这么说的),那么使用Lucene来检索的话,效率会高很多. luc ...

  3. C#热血传奇游戏服务端再次开源更新

    2014年新春佳节即将到来,也算是送给大家的一份新年礼物.虽然这礼物貌似不给力啊哈哈.(没有用心啊 o(∩_∩)o 哈哈) 这次开源主要去掉上一次开源版本中大量指针代码,简化上手操作,并重构大部分代码 ...

  4. join的一对多,去除重复,排序优先的group方法

    想将问题列表按照最新回答来排列.但问题和回答是分拆在两张表来存放的.所以,要完成上述需求,需从主表“问题”取显示数据,但是得按照次表(回答)的更新日期来排序. 用join来做,始终无法去除重复,折腾了 ...

  5. 老鸟的Python入门教程

    转自老鸟的Python入门教程 重要说明 这不是给编程新手准备的教程,如果您入行编程不久,或者还没有使用过1到2门编程语言,请移步!这是有一定编程经验的人准备的.最好是熟知Java或C,懂得命令行,S ...

  6. Java泛型反射机制(二)

    /** * @author Administrator * 好处:泛型:1安全 2减少代码重用率 */ package com.test; import java.lang.reflect.Metho ...

  7. SPRING IN ACTION 第4版笔记-第五章BUILDING SPRING WEB APPLICATIONS-002-Controller的requestMapping、model

    一.RequestMapping 1.可以写在方法上或类上,且值可以是数组 package spittr.web; import static org.springframework.web.bind ...

  8. 调试Android USB遇到的令人费解的问题

    上周参照网上代码,做了USB的初步探测程序,工作正常 .今天从硬件部拿到了一段例程,原本打算参考它来完善自己的程序.但运行之后总是报错,逐步跟进错误,进而发现了一个匪疑所思的问题.调试一天也未发现原因 ...

  9. 《ArcGIS Engine+C#实例开发教程》第二讲 菜单的添加及其实现

    原文:<ArcGIS Engine+C#实例开发教程>第二讲 菜单的添加及其实现 摘要:在上一讲中,我们实现了应用程序基本框架,其中有个小错误,在此先跟大家说明下.在“属性”选项卡中,我们 ...

  10. ServletInvocableHandlerMethod:167 - Error resolving argument

    at org.springframework.web.method.annotation.RequestParamMethodArgumentResolver.handleMissingValue(R ...