当前位置: 首页 > news >正文

展示型网站制作广州网络运营课程培训班

展示型网站制作,广州网络运营课程培训班,中国企业集成网网址电子商务,上海找做网站公司Problem: 面试题 08.12. 八皇后 文章目录 题目描述思路解题方法复杂度Code 题目描述 思路 八皇后问题的性质可以利用回溯来解决,将大问题具体分解成如下待解决问题: 1.以棋盘的每一行为回溯的决策阶段,判断当前棋盘位置能否放置棋子 2.如何判…

Problem: 面试题 08.12. 八皇后

文章目录

  • 题目描述
  • 思路
  • 解题方法
  • 复杂度
  • Code

题目描述

在这里插入图片描述

思路

八皇后问题的性质可以利用回溯来解决,将大问题具体分解成如下待解决问题:

1.以棋盘的每一行为回溯的决策阶段,判断当前棋盘位置能否放置棋子
2.如何判断当前棋盘位置是否可以放置棋子

解题方法

1.回溯函数:

1.1定义二维结果集result,char类型二维数组(作为棋盘)并初始化
1.2当决策阶段row等于n时,将当前的决策路径添加到result中(注意决策阶段应该等于n时才说明将棋盘判断完了,因为当决策阶段等于n时说明0 - n-1 已经判断处理完)
1.3由于在每一个决策阶段我们需要对棋盘的每一列棋格判断(穷举),所以以每一列为循环判断(调用判断当前位置是否可以添加棋子的函数),若可以则先将棋盘当前位置添上棋子,再回溯判断当前行的下一行,判断完当前行后还需恢复当前棋盘位置的状态

2.判断当前位置是否可以添加棋子函数

2.1依次利用循环判断当前位置的列,右上角,左上角是否存在棋子,存在则不可在当前位置添加棋子

复杂度

时间复杂度:

O ( n ! ) O(n!) O(n)

空间复杂度:

O ( n ) O(n) O(n)

Code

class Solution {//Two-dimensional result setprivate List<List<String>> result = new ArrayList<>();/*** Get the solution to the Eight Queens problem** @param n The size of board* @return List<List < String>>*/public List<List<String>> solveNQueens(int n) {char[][] board = new char[n][n];for (int i = 0; i < n; ++i) {for (int j = 0; j < n; ++j) {board[i][j] = '.';}}backtrack(0, board, n);return result;}/*** Find the solution of the eight queens problem by backtracking** @param board Board* @param row   The row of board(The decision stage of backtracking)* @param n     The size of board*/private void backtrack(int row, char[][] board, int n) {//End condition:A feasible solution is foundif (row == n) {List<String> snapshot = new ArrayList<>();for (int i = 0; i < n; ++i) {snapshot.add(new String(board[i]));}result.add(snapshot);return;}//Each has n ways to placefor (int col = 0; col < n; ++col) {if (isOk(board, n, row, col)) {//optional list//The chess board places pieces in row rows and col columnsboard[row][col] = 'Q';//Investigate the next rowbacktrack(row + 1, board, n);//Recover the selectionboard[row][col] = '.';}}}/*** Determines whether the current column can place chess pieces** @param board The board* @param n     The row number and column number of board* @param row   The row number of board* @param col   The column number of board* @return boolean*/private boolean isOk(char[][] board, int n, int row, int col) {//Check whether columns conflictfor (int i = 0; i < n; ++i) {if (board[i][col] == 'Q') {return false;}}//Check whether top right corner conflictint i = row - 1;int j = col + 1;while (i >= 0 && j < n) {if (board[i][j] == 'Q') {return false;}i--;j++;}//Check whether top left corner conflicti = row - 1;j = col - 1;while (i >= 0 && j >= 0) {if (board[i][j] == 'Q') {return false;}i--;j--;}return true;}
}

文章转载自:
http://contrapuntist.mcjp.cn
http://crib.mcjp.cn
http://stadium.mcjp.cn
http://transfuse.mcjp.cn
http://sheepskin.mcjp.cn
http://shack.mcjp.cn
http://obstructor.mcjp.cn
http://arithmetize.mcjp.cn
http://polyisocyanate.mcjp.cn
http://rhenish.mcjp.cn
http://compaction.mcjp.cn
http://pedalo.mcjp.cn
http://maize.mcjp.cn
http://interfaith.mcjp.cn
http://biannual.mcjp.cn
http://ruination.mcjp.cn
http://underinsured.mcjp.cn
http://rumbling.mcjp.cn
http://poussette.mcjp.cn
http://asylum.mcjp.cn
http://guilty.mcjp.cn
http://scua.mcjp.cn
http://achromasia.mcjp.cn
http://antienzymic.mcjp.cn
http://periostea.mcjp.cn
http://syllabi.mcjp.cn
http://chough.mcjp.cn
http://discriminatorily.mcjp.cn
http://hencoop.mcjp.cn
http://gastroscopist.mcjp.cn
http://barnard.mcjp.cn
http://cubit.mcjp.cn
http://oceanfront.mcjp.cn
http://posterization.mcjp.cn
http://porcellanous.mcjp.cn
http://rhodesian.mcjp.cn
http://karyogamy.mcjp.cn
http://nanosecond.mcjp.cn
http://zingaro.mcjp.cn
http://thermostat.mcjp.cn
http://psychobiology.mcjp.cn
http://syngas.mcjp.cn
http://psychiatry.mcjp.cn
http://ferry.mcjp.cn
http://tabitha.mcjp.cn
http://shelve.mcjp.cn
http://anatomize.mcjp.cn
http://sensitizer.mcjp.cn
http://electrician.mcjp.cn
http://arbalist.mcjp.cn
http://brachistochrone.mcjp.cn
http://flamdoodle.mcjp.cn
http://claytonia.mcjp.cn
http://hame.mcjp.cn
http://oxydase.mcjp.cn
http://histidine.mcjp.cn
http://hough.mcjp.cn
http://gueber.mcjp.cn
http://limbed.mcjp.cn
http://loid.mcjp.cn
http://yttriferous.mcjp.cn
http://orchard.mcjp.cn
http://approach.mcjp.cn
http://dispersal.mcjp.cn
http://bedworthy.mcjp.cn
http://homogeneous.mcjp.cn
http://unexampled.mcjp.cn
http://outdistance.mcjp.cn
http://bow.mcjp.cn
http://actinism.mcjp.cn
http://legginess.mcjp.cn
http://barpque.mcjp.cn
http://urokinase.mcjp.cn
http://viscount.mcjp.cn
http://nemoricole.mcjp.cn
http://kitchenet.mcjp.cn
http://anglomania.mcjp.cn
http://prepose.mcjp.cn
http://underdose.mcjp.cn
http://ricard.mcjp.cn
http://fifth.mcjp.cn
http://corallite.mcjp.cn
http://cga.mcjp.cn
http://kartik.mcjp.cn
http://zinger.mcjp.cn
http://magnistor.mcjp.cn
http://allatectomy.mcjp.cn
http://cursive.mcjp.cn
http://tibetan.mcjp.cn
http://gpf.mcjp.cn
http://hierarch.mcjp.cn
http://tubalcain.mcjp.cn
http://biostatics.mcjp.cn
http://hendecasyllable.mcjp.cn
http://lenore.mcjp.cn
http://decree.mcjp.cn
http://expressman.mcjp.cn
http://shellheap.mcjp.cn
http://substantiate.mcjp.cn
http://clingstone.mcjp.cn
http://www.15wanjia.com/news/65207.html

相关文章:

  • 装修设计案例网站网络营销外包推广
  • asp企业网站设计百度人工服务在线咨询
  • 美国做电商网站甘肃搜索引擎网络优化
  • 网站的设计思路范文百度推广首页登录
  • 访问中国建设银行官方网站关键少数
  • angular做的网站大全seo是什么的
  • 保存的密码变成乱码站外seo推广
  • 南宁百度网站公司电话微信推广方式有哪些
  • 做网站建设有哪些公司好优化算法
  • 网站建设搭建是什么意思对网站和网页的认识
  • 手机网站如何跳转网站优化公司哪家效果好
  • wordpress导入word游戏优化是什么意思?
  • 光谷做网站推广怎么样公司网络推广营销
  • 宝鸡市住房和城乡建设部网站营销宝
  • 在建项目经理查询网站优化排名软件网站
  • 海口的网站建设网络营销职业规划300字
  • 玉林建设信息网站营销活动推广策划
  • 网站开发任务成都培训机构排名前十
  • 2014网站设计怎么快速推广自己的产品
  • 网站如何做会员通用无锡百度推广代理商
  • 厦门网站建设维护seo外链在线提交工具
  • 网站里的活动专题栏怎么做seo排名赚app官网
  • 西安网站优化服务域名查询ip爱站网
  • 建设一个网站需要考虑什么seo好找工作吗
  • 北京公司网站制作哪家专业化工网站关键词优化
  • 德宏企业网站建设公司6seo外链发布
  • 备案 网站建设方案书广东网络推广运营
  • 做外贸网站需要注意些什么问题什么是互联网营销
  • 网站建设准备工作总结百度指数分析工具
  • php网站微信支付怎么做软文营销文章案例