这篇page针对的是leetcode上的51.N皇后所写的。小尼先简单的说明一下这道题,就是按照国际象棋的规则,皇后可以攻击与之处在同一行或同一行或同一斜线上的棋子。

小尼先拉一下代码:

class Solution {List<List<String>> res = new ArrayList<>();public List<List<String>> solveNQueens(int n) {char[][] chessboard = new char[n][n];for(char[] c : chessboard){Arrays.fill(c,'.');}backTracking(n,0,chessboard);return res;}public void backTracking(int n, int row, char[][] chessboard){if(row == n){res.add(Array2List(chessboard));return;}for(int col = 0; col < n; ++col){if(isValid(row,col,n,chessboard)){chessboard[row][col] = 'Q';backTracking(n,row+1,chessboard);chessboard[row][col] = '.';}}}public List Array2List(char[][] chessboard){List<String> list = new ArrayList<>();for(char[] c : chessboard ){list.add(String.copyValueOf(c));}return list;}public boolean isValid(int row, int col, int n, char[][] chessboard){for(int i = 0; i<row; ++i){if(chessboard[i][col] == 'Q'){return false;}}for(int i = row - 1, j = col - 1; i>=0 && j>=0; i--, j--){if(chessboard[i][j] == 'Q'){return false;}}for(int i=row-1, j=col+1; i>=0 && j<=n-1; i--, j++){if(chessboard[i][j] == 'Q'){return false;}}return true;}
}

My Sixtieth Page - N皇后 - By Nicolas相关推荐

  1. My Seventh Page - 设计链表 - By Nicolas

    这一篇page对应的是leetcode上面707.设计链表这个题目,首先这个题目的描述还是比较简单的,就是我们可以选择使用单链表或者双链表实现链表对应的增删改查的许多功能.小尼这个题目大部分都是看的题 ...

  2. My Hundredth Page - 回文子串 - By Nicolas

    这篇page是针对leetcode上的647.回文子串所写的.小尼先简单的说明一下这道题的意思,就是给定一个字符串s,需要统计出这个字符串中回文子串的数目,回文子串的定义就是正着读和倒过来读是一样的字 ...

  3. My Eighty-sixth Page - 买股票的最佳时机Ⅲ - By Nicolas

    这篇page是针对leetcode上的123.买股票的最佳时机Ⅲ所写的.小尼先简单的说明一下这道题的意思,就是我们给定一个数组,它的第i个元素表示的是一支股票在第i天的价格,我们需要设计一个算法表示我 ...

  4. My Eighty-seventh Page - 买卖股票的最佳时机 - By Nicolas

    这篇page是针对leetcode上的188.买卖股票的最佳时机Ⅳ所写的.小尼先简单的说明一下这道题的意思,就是我们给定一个整数数组prices,它的第i个元素prices[i]是一支给的股票在第i天 ...

  5. My Fourteenth Page - 两个数组的交集 - By Nicolas

    今天的这篇page针对的时leetcode上的349.两个数组的交集写的,小尼首先简单说明一下这道题的要求,给点两个数组nums1和nums2.,返回他们的交集,输出结果中的每个元素一定是唯一的. 首 ...

  6. My Twenty-Fourth - Page - 逆波兰表达式求值 - By Nicolas

    这篇page是针对leetcode上的150.逆波兰表达式这道题所写的,小尼先简单说明一下这道题的意思,这道题先是介绍了有效的运算符包括"+","-",&quo ...

  7. My Twenty-Eighth Page - 滑动窗口最大值 - By Nicolas

    这篇page是针对leetcode上的239.滑动窗口的最大值所写的.小尼先简单的说明一下这道题的题意,给出一个整数数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧,需要返回滑动 ...

  8. My Twentieth Page - 用栈实现队列 - By Nicolas

    这篇page是针对leetcode上的232.用栈实现队列这道题所写的,小尼先简单的说明一下这道题,就是利用两个栈实现先入先出队列.队列应当支持一般队列支持的所有操作(push.pop.peek.em ...

  9. My Ninetieth Page - 最长递增子序列 - By Nicolas

    这篇page是针对leetcode上的300.最长递增子序列所写的.小尼先简单的说明一下这道题的意思,给定一个整数数组nums,我们需要找到其中最长严格递增子序列的长度.其中子序列是由数组派生而来的序 ...

  10. My Eighty-ninth Page - 买卖股票的最佳时机含手续费 - By Nicolas

    这篇page是针对leetcode上的714.买卖股票的最佳时机含手续费所写的.小尼先简单的说明一下这道题的意思,就是给定一个整数数组prices,其中prices[i]表示第i天的股票价格,整数fe ...

最新文章

  1. 2月书讯:终究还是来了
  2. mvc4.0 html.actionlink comfired,未触发MVC 5远程验证
  3. 考勤系统的业务概念图
  4. YouTube深度学习推荐系统的十大工程问题
  5. 【连载】如何掌握openGauss数据库核心技术?秘诀五:拿捏数据库安全(3)
  6. HTTP基础--chapter2结束了
  7. 从一个git仓库拷贝到另一个git仓库
  8. 如何在 Mac 上自动启用隐藏式字幕?
  9. 我分析了虎嗅网5万篇文章,发现这些秘密
  10. 【安卓小程序】仿微信页面
  11. 推荐一款快速上手的可视化分析工具:网易有数
  12. 报警后签了和解协议,还能反悔吗
  13. 【腾讯QQ官方正式版下载】基于Internet的即时通信(IM)软件
  14. 如何将图片转换成字符画
  15. Linux下安装postgres数据库(未完待续)
  16. 王爽汇编语言 实验14
  17. 20221024 今天的世界发生了什么
  18. VB编写欧姆龙PLC和霍尼韦尔扫描枪 的串口调试程序,可供大家参考
  19. 泛微JQ绑定check框事件
  20. flash图片如何镜像翻转_在canvas上实现元素图片镜像翻转动画效果的方法

热门文章

  1. duck typing
  2. 精读《磁贴布局 - 功能分析》
  3. 阿兹卡塔防 Azgard Defense 详细攻略
  4. [Python] 年终奖税后计算器
  5. 修修补补,不如推倒重建
  6. 那些年,我们一起喜欢的诺基亚
  7. [转]performSelector延时调用导致的内存泄露
  8. 不要随便点这个网站,你偷偷下载的小电影,他们全都知道!
  9. 判断分数是否为无限循环小数
  10. win10+Ubuntu双系统下如何完美卸载Ubuntu系统