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

网站域名在哪买制作主页的软件

网站域名在哪买,制作主页的软件,网页制作知识点归纳,网站服务器租赁多少钱题意 给定一个数字 n n n,形成n*n的棋盘,棋盘上放n个皇后,确保皇后之间不会相互吃(皇后可以直线吃,斜线吃) 链接 https://leetcode.com/problems/n-queens/description/ 思考 这道题只能暴力枚举所有的…

题意

给定一个数字 n n n,形成n*n的棋盘,棋盘上放n个皇后,确保皇后之间不会相互吃(皇后可以直线吃,斜线吃)

链接

https://leetcode.com/problems/n-queens/description/

思考

这道题只能暴力枚举所有的位置,但是如果直接在二维矩阵上做空间复杂度比较高,可以降维度

题解

dfs枚举所有可以放n皇后的地方。构造一个数组pos, p o s [ i ] pos[i] pos[i]代表在第i行第pos[i]列放一个皇后。
结束条件为,当pos数组长度为n,根据pos数组构造二维的答案
传入参数u表示当前pos数组添加到第几个元素(实际上是第u行皇后应该放在什么位置),遍历这个元素所有的可能性(0-n 列),并且判断新放入皇后是否和前面所有的皇后列数相同,是否和前面所有的皇后在同一个对角线上,如果不在,那么第u位就选了,要选择第u+1位元素,注意回溯。

对角线性质

请添加图片描述

class Solution {
public:vector<vector<string>> res; vector<vector<string>> solveNQueens(int n) {//pos保证所有的n queens不可能在同一行,所以循环中只需要check//是不是同一列或者斜对角就可以vector<int> pos;dfs(0, pos, n);return res;}void dfs(int u, vector<int>& pos, int n) {if( u == n ) {vector<string> str(n, string(n, '.'));for(int i = 0; i < n; i++) {str[i][pos[i]] = 'Q';}res.push_back(str);return;}for(int i = 0; i < n; i++) {if(isValid(pos,u, i)) {pos.push_back(i);dfs(u+1, pos, n);pos.pop_back();}}}bool isValid(vector<int>& pos, int row, int col) {int m = pos.size();for(int i = 0; i < m; i++) {int preRow = i;int preCol = pos[i];if(col == preCol) return false;if(abs(row-preRow) == abs(col - preCol)) return false;}return true;}
};

时间复杂度: O ( N 2 ∗ N ! ) O(N^2* N!) O(N2N!)
空间复杂度: O ( N ) O(N) O(N)

N Queens II是统计所有不同的方案数,一样的解法

class Solution {
public:int cnt = 0;int totalNQueens(int n) {vector<int> pos;dfs(0, pos, n);return cnt;}void dfs(int u, vector<int>& pos, int n) {if( u == n) {cnt++;return;}static vector<bool> col(n, false);static vector<bool> diag(2*n-1, false);static vector<bool> udiag(2*n-1, false);        for(int i = 0; i < n; i++) {int r = u;int c = i;if(!col[c] && !diag[r+c] && !udiag[r-c+n-1]) {pos.push_back(i);col[c] = diag[r+c] = udiag[r-c+n-1] = true;dfs(u+1, pos, n);col[c] = diag[r+c] = udiag[r-c+n-1] = false;pos.pop_back();}}}
};

时间复杂度: O ( N 2 ∗ N ! ) O(N^2* N!) O(N2N!)
空间复杂度: O ( N ) O(N) O(N)

http://www.laogonggong.com/news/59348.html

相关文章:

  • 浪漫免费表白网站更改wordpress密码
  • 网站运营与推广方案wordpress 中文附件
  • 焦点网站设计网站开发中 html
  • 深圳网站seo教程做卫生用品都在什么网站
  • ae如何做视频模板下载网站网站订单系统模板下载
  • 做网站是域名怎么申请房地产如何做网站推广
  • 制作外贸型网站如何建立公司企业网站
  • 做网站实验报告无锡 公共建设中心网站
  • 深圳公司网站建设服务为先权威的徐州网站建设
  • 后台更新的内容在网站上不显示2021年网络营销考试题及答案
  • 类似凡科网的网站做博客网站最好用什么系统
  • 深圳定制网站制作招聘网天津做优化的网站有多少家
  • 网站建设具体流程图用网站做的简历
  • 广州我要做网站丽江网页制作
  • 学网站建设需要什么工具好的推广方式
  • m2型虚拟主机带宽 网站电子商务网站建设专业主修课程
  • 如何推广网站话术多地优化防控举措方便民众生活
  • 做ic销售的各种网站简述网站开发建设的基本流程
  • 免费个人手机网站军事网站模板
  • 网站开发用什么代码宁波妇科专家排名
  • 北京网站开发公司大全泰安网站建设排行
  • 衡水网站开发报价北京市建设工程信息网登录流程
  • 重庆营销型网站制作济南市住房和城乡建设局官方网站
  • phpstudy配置网站黄骅在线
  • 深圳宝安住房和建设局网站wordpress游客留言
  • 企业品牌网站建设建设农村信息网站
  • 天津公司网站推广如何汉化wordpress主题
  • 合川建网站移动端减肥网站模板
  • 网站下拉菜单重叠湖南建设信誉查询网站
  • 东莞制作企业网站投资网站php源码