N-Queens II--LeetCode
2015-04-13 16:13
309 查看
Follow up for N-Queens problem.
Now, instead outputting board configurations, return the total number of distinct solutions.
思路:使用组合的方式来判断,加入每一列排放一个,那么看行怎么排序,如果0~n的数,进行全排列,第i个位置上的数是什么代表第I个皇后放到这个列。
每一个排列就需要判断是否合法,这个时候只需要判断是否在斜线上即可。
Now, instead outputting board configurations, return the total number of distinct solutions.
思路:使用组合的方式来判断,加入每一列排放一个,那么看行怎么排序,如果0~n的数,进行全排列,第i个位置上的数是什么代表第I个皇后放到这个列。
每一个排列就需要判断是否合法,这个时候只需要判断是否在斜线上即可。
bool Check(vector<int>& vec) { int i,j; for(i=0;i<vec.size();i++) { for(j=i+1;j<vec.size();j++) if(i-j == vec[i]-vec[j] || j-i == vec[i]-vec[j]) return false; } return true; } int Permutation(vector<int>& vec,int index,int& count) { int i; if(index == vec.size()) { if(Check(vec)) count++; } for(i=index;i<vec.size();i++) { swap(vec[index],vec[i]); Permutation(vec,index+1,count); swap(vec[index],vec[i]); } return count; } int totalNQueens(int n) { vector<int> vec(n); for(int i=0;i<n;i++) vec[i] =i; int count=0; Permutation(vec,0,count); return count; }
相关文章推荐
- leetcode[52]N-Queens II
- LeetCode My solution: N-Queens II
- Leetcode: N-Queens II
- leetcode-52. N-Queens II
- [leetcode] N-Queens II
- LeetCode N-Queens II
- [LeetCode]52 N-Queens II
- LeetCode:N-Queens II
- leetcode笔记:N-Queens II
- [leetcode] 52.N-Queens II
- leetcode-52. N-Queens II
- LeetCode——N-Queens II
- [LeetCode][Java] N-Queens II
- LeetCode N-Queens II
- 【LeetCode】52. N-Queens II
- leetcode hard模式专杀之52 N-Queens II
- leetcode第一刷_N-Queens II
- [leetcode]N-Queens II
- Leetcode 51. N-Queens && 52. N-Queens II(Hard)
- leetcode - N-Queens II