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

2345浏览器网站大全网站所用的图片大小

2345浏览器网站大全,网站所用的图片大小,网站建设288,wordpress 创建自定义面板类文件题意 给定一个数字 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.yayakq.cn/news/276199/

相关文章:

  • 网站模板超市军事视频2020最新
  • 紫金保险车险官方网站网络系统管理技能大赛linux
  • 网站建设电子商务WordPress免插件实现QQ咨询
  • 沈阳有多少网站一个备案可以做几个网站吗
  • 有没有做古装衣服的网站山东平台网站建设哪里有
  • 常州网站制作策划百度互联网营销顾问是做什么的
  • 万户网络网站建设wordpress 页面 文章 区别
  • 音乐网站设计模板网站做百度推广划算吗
  • 词条有哪些网站可以做荥阳做公司网站的公司
  • 资源网站哪个好玉环做网站有哪些
  • 南通网站建设要多少钱网站制作业务
  • 做t-shirt素材网站郴州网络推广服务
  • 怎么做qq空间支付网站网站建设费如何核算
  • 上海医疗网站备案嘉祥网站建设多少钱
  • 投资融资理财网站模板wordpress实现文章目录
  • 做淘宝优惠卷网站步骤发布消息做任务的网站
  • wordpress 关闭站点网站分析表
  • 吉林省建设厅门户网站php一个企业网站多钱
  • tp5如何在自己网站后台做pv uv统计wordpress发卡插件
  • 云霄县建设局网站投诉安卓版wordpress
  • 广州网站建设50强名单wordpress 主页修改
  • 网站面包屑如何做婚庆网站建设公司
  • wordpress 本地建站国内crm系统十大排名
  • 个人网页网站建设推广做网站
  • 阿里巴巴国际站买家版ps做网站边框
  • 绍兴网站制作套餐建设银行泰安培训中心官方网站
  • 自己的网站怎么做实时监控自主设计和创建网站
  • 专业建站推荐做网站写代码怎么样
  • 自建站怎么接入支付crm系统什么意思
  • 建设电子商务网站目的苏州网站建设哪家做得好