关于相机购买的问题# PhotoGear - 摄影器材
w*y
1 楼
要怎么做才能不超时?
我就是按照传统的N queens写法, 但是大集合到12就超时了
public class Solution {
int res=0;
public int totalNQueens(int n) {
int[] row = new int[n];
res=0;
_solveNQueens(row,0);
return res;
}
public void _solveNQueens(int[] row, int idx){
//when it finishes the last row, output the valid result
if(idx==row.length){
res++;
return;
}
for(int j=0;j row[idx]=j;
if(isValid(row,idx))
_solveNQueens(row,idx+1);
}
}
public boolean isValid(int[] row, int idx){
for(int i=0;i for (int j=i+1;j<=idx;j++)
if(row[i]==row[j] || row[i]-row[j]==i-j|| row[i]-row[j]==j-i)
return false;
}
return true;
}
}
我就是按照传统的N queens写法, 但是大集合到12就超时了
public class Solution {
int res=0;
public int totalNQueens(int n) {
int[] row = new int[n];
res=0;
_solveNQueens(row,0);
return res;
}
public void _solveNQueens(int[] row, int idx){
//when it finishes the last row, output the valid result
if(idx==row.length){
res++;
return;
}
for(int j=0;j
if(isValid(row,idx))
_solveNQueens(row,idx+1);
}
}
public boolean isValid(int[] row, int idx){
for(int i=0;i
if(row[i]==row[j] || row[i]-row[j]==i-j|| row[i]-row[j]==j-i)
return false;
}
return true;
}
}