标签:i++ 情况 system als sys 规划 题目 ++ 动态规划
做了好多动态规划的题目,有了一些心得。
public int getanswer(char[][] map,int index,int n) {
if(index==n) {// index==n 则意味的递归结束
/*System.out.println("-------------");
for(int i=0;i<n;i++) {
System.out.println(map[i]);
}//打印一些 可行的排列
System.out.println("--------------");*/
return -1;//返回-1 意味着递归的结束,或 递归失败
}else {
for(int i=0;i<n;i++) {//遍历该次 皇后可行的位置
if(isOk(i, index, map)) {
map[index][i]='Q';
if(getanswer(map, index+1, n)==-1) {//递归返回1 说明该位置符合
map[index][i]='\0';
}
}
}
return -1;//递归失败,返回上一级
}
}
public boolean isOk(int x,int y,char[][] map) {//判断某个点 是否可以安放
int len=map.length;
for(int i=y-1,j=1;i>=0;i--) {
if(map[i][x]!='\0')return false;
if(x-j>=0&&map[i][x-j]!='\0')return false;
if(x+j<len&&map[i][x+j]!='\0')return false;
j++;
}
return true;
}
总的来说,八皇后问题就是在不断的递归求解中,尝试可能的情况,假如下一级递归失败,则尝试一下一种情况
标签:i++ 情况 system als sys 规划 题目 ++ 动态规划
原文地址:https://www.cnblogs.com/duangL/p/11575101.html