287. Find the Duplicate Number hard
2024-10-15 10:11:38
287. Find the Duplicate Number hard
http://www.cnblogs.com/grandyang/p/4843654.html
51. N-Queens
http://blog.csdn.net/linhuanmars/article/details/20667175 http://www.cnblogs.com/grandyang/p/4377782.html
思路就是利用一个pos[row]=col来记录 行号:row,Queen在第col列。
再用一个index来记录当前递归到行号:index。
另外检查时候,只需要传入pos数组跟当前的位置 row,col。并且只需要从第0行倒第row-1行即可。
其中,判断当前行是不需要的,判断当前列跟斜线即可。斜线上直接利用斜率即可:(y2-y1)/(x2-x1)=正负1即可!
不过helper函数中第一个if语句没有 return竟然也能得到正确答案!我已惊呆!
class Solution {
public:
vector<vector<string>> solveNQueens(int n) {
vector<int> pos(n,-);
helper(res,,pos,n);
return res;
}
void helper(vector<vector<string>>& res,int index,vector<int>& pos,int len){
if(index==len){
vector<string> temp(len,string(len,'.'));
for(int i=;i<len;i++){
temp[i][pos[i]]='Q';
}
res.push_back(temp);
}
for(int col=;col<len;col++){
if(isCheck(pos,index,col)){
pos[index]=col;
helper(res,index+,pos,len);
pos[index]=-;
}
} }
bool isCheck(const vector<int>& pos,int row,int col){
for(int i=;i<row;i++)
if(col==pos[i]||abs(pos[i]-col)==abs(i-row))
return false;
return true;
}
private: vector<vector<string>> res;
};
最新文章
- About 静态代码块,普通代码块,同步代码块,构造代码块和构造函数的纳闷
- Windows 10 下mysql 安装后无法启动问题
- Marsedit 破解版下载(3.5.6)
- Linux课程实践一:Linux基础实践(基础操作)
- Docker实践(6)—CentOS7上部署Kubernetes
- MongoDB的C#驱动基本使用
- Spring.Net AOP实例
- jquery动态添加列表后样式失效解决方式
- 选择服务器OS标准
- SQL Server 2008数据库的一些基本概念 区、页、行
- uva 1401 dp+Trie
- MobaXterm
- LNMP环境下部署搭建wordpress
- [Swift]LeetCode243.最短单词距离 $ Shortest Word Distance
- CDN和智能DNS原理和应用 (原)
- C++基础学习一(基础之基础)
- MySQL或MariaDB忘记root密码
- Sitecore CMS中删除项目
- Sublime Text2中的快捷键一览表(Sublime 键盘快捷键大全 )
- EZOJ #224