您的位置:首页 > 产品设计 > UI/UE

leetcode 52. N-Queens II

2016-09-19 15:13 369 查看
这什么题 MDZZ

public int totalNQueens(int n) {
return solveNQueens(n).size();
}

List<List<Integer>> results = new ArrayList<List<Integer>>();
List<Integer> result = new ArrayList<Integer>();

public List<List<String>> solveNQueens(int n) {
List<List<String>> result = new ArrayList<List<String>>();
solveNQueens(n, 0);
char[] chars = new char
;
//for(char mychar:chars) mychar = '.';//**********!!!!!!!!!!
for(int i = 0;i < n;i++) chars[i] = '.';
for(List<Integer> integers:results){
List<String> strings = new ArrayList<String>();
for(Integer integer:integers){//1 3 0 2
chars[integer] = 'Q';
strings.add(new String(chars));
chars[integer] = '.';
}
result.add(strings);
}
return result;
}

public void solveNQueens(int n,int currentLine){
if(currentLine == n) {
List<Integer> integers = new ArrayList<Integer>();
integers.addAll(result);
results.add(integers);
}
else{
for(int i = 0;i < n;i++){
boolean placeAble = true;
if(currentLine != 0){
if(result.contains(i))
placeAble = false;
else
for(int j = 0;j < currentLine;j++){
if((Math.abs(result.get(j)-i)) == currentLine - j){
placeAble= false;
break;
}
}
}
if(placeAble == true)
{   result.add(i);
solveNQueens(n,currentLine+1);
result.remove(currentLine);
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: