Leetcode52 N-Queens II
Posted xuweimdm
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode52 N-Queens II相关的知识,希望对你有一定的参考价值。
N-Queens II
Follow up for N-Queens problem.
Now, instead outputting board configurations, return the total number of distinct solutions.
Solution
- 在上一题的基础上,这道题显得过于简单。
public class Solution
public int totalNQueens(int n)
int[] res = new int[1];
help(n, 0, new int[n], res);
return res[0];
public void help(int n, int row, int[] used, int[] res)
if(row>=n)
res[0]++;
return;
for(int j=0,i=0;j<n;j++)
for(i=0;i<row;i++) if(j==used[i]||Math.abs(i-row)==Math.abs(j-used[i])) break;
if(i!=row) continue;
used[row] = j;
help(n,row+1,used,res);
- 另外,其实想传递单个的数值,也可以不用数组。而是作为返回值带回。
public class Solution
public int totalNQueens(int n)
return help(n, 0, new int[n], 0);
public int help(int n, int row, int[] used, int res)
if(row>=n) return ++res;
for(int j=0,i=0;j<n;j++)
for(i=0;i<row;i++) if(j==used[i]||Math.abs(i-row)==Math.abs(j-used[i])) break;
if(i!=row) continue;
used[row] = j;
res = help(n,row+1,used,res);
return res;
以上是关于Leetcode52 N-Queens II的主要内容,如果未能解决你的问题,请参考以下文章