回溯法解n后问题
来源:互联网 发布:费迪南德拳击 知乎 编辑:程序博客网 时间:2024/05/11 04:30
自己写回溯法求解n后问题,有什么可以改进大家指点指点
/** * n后问题 * @param a 基础数组 全为0 * @param n 默认为0 */public static void b(int [][]a,int n){ //判断是否已经添加到最后一行是就打印当前的结果 if(n==a.length){ print(a);//打印
num++; return; } for(int i=0;i<a.length;i++){ boolean flag=true; a[n][i]=1;//循环对当前行的每一列放置棋子 for(int j=n;j>=0;j--){//判断放置棋子的这一列是否有棋子 if(a[j][i]==1&&j!=n){ a[n][i]=0;//回溯 flag=false; break; } } if(flag==false){ continue;//在下一个位置放置棋子
} for(int j=n,m=i;j>=0&&m>=0;j--,m--){//判断放置棋子的左上方是否有棋子 if(a[j][m]==1&&j!=n){ a[n][i]=0;//回溯 flag=false; break; } } if(flag==false){ continue;//在下一个位置放置棋子
} for(int j=n,m=i;j>=0&&m<a.length;j--,m++){//判断放置棋子的右上方是否有棋子 if(a[j][m]==1&&j!=n){ a[n][i]=0;//回溯 flag=false; break; } } if(flag==false){ continue;//在下一个位置放置棋子 }if(flag){} a[n][i]=0;//回溯 }}queen(a,n+1);//可以放置则放置下一行
1 0
- 回溯法解n后问题
- 回溯法 -----n后问题
- n后问题(回溯法)
- 回溯法:N后问题
- 回溯法-n后问题
- 回溯法-n后问题
- n后问题(回溯法)
- 回溯法--------n后问题
- LV算法和回溯法结合解n后问题
- N后问题(回溯法)
- 回溯法 ------n后问题 续
- 回溯法解决n后问题
- 回溯之n后问题
- 【回溯法】n后问题和0-1背包问题
- 回溯法和分支界限法解决N后问题
- 算法java实现--回溯法--n后问题
- N后问题——回溯法求解
- 回溯法-排列树 解决N后问题
- 学习reactJS笔记
- linux runtime pm机制的深入理解
- CenteOS6.5下Redis安装踩过的坑
- Linux高级IO
- hihocoder #1153 : Numeric Keypad
- 回溯法解n后问题
- CDR如何将绘图页面指定对象保存为JPG格式
- UIButton高亮(highlighted)下的边框颜色(borderColor)
- 软件性能测试的本质
- 4.0spring框架学习(四)自动装配
- App测试方法总结
- python 导入循环问题
- MYSQL数据库规范-字段规范
- tensorflow训练的模型在java中的使用