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

重庆网站优化软件googleseo推广

重庆网站优化软件,googleseo推广,上海网站建设需要多少钱,来个网站吧好人一生平安2022按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上,并且使皇后彼此之间不能相互攻击。 给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。 每一种…

按照国际象棋的规则,皇后可以攻击与之处在同一行同一列同一斜线上的棋子。

n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。

给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。

每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中 'Q''.' 分别代表了皇后空位

示例 1
answer
输入n = 4
输出[[".Q..","...Q","Q...","..Q."],["..Q.","Q...","...Q",".Q.."]]
解释:如上图所示,4 皇后问题存在两个不同的解法。

示例 2

输入n = 1
输出[["Q"]]

提示

1 <= n <= 9

已经不是第一次遇到 N 皇后问题了,依稀记得三年前的暑假,刚接触 c++的自己,看着 N 皇后别人 AC 掉的代码,天书一般,留下的知识满眼的钦佩!

  • 愿与君共勉!

事实上,现在看来,N 皇后问题相比其他的回溯算法题,hard点在于它使用的是二维数组,回溯的思路是不变的!

void backtracking(参数) {if (终止条件) {存放结果;return;}for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) {处理节点;backtracking(路径,选择列表); // 递归回溯,撤销处理结果}
}
  • 参数选择 -> 回溯终止条件 -> 单层处理logic

值得一提的是 每列棋子放置的合理性判别,即 isValid的函数实现。


AC

/** @lc app=leetcode.cn id=51 lang=cpp** [51] N 皇后*/// @lc code=start
class Solution {
private:vector<vector<string>> result;bool isValid(int row, int col, vector<string>& chessboard, int n) {// 检查列for(int i = 0; i < row; i++) {if(chessboard[i][col] == 'Q')return false;}// 检查45°角for(int i = row - 1, j = col - 1; i >= 0 && j >= 0; i--, j--) {if(chessboard[i][j] == 'Q')return false;}// 检查135°角for(int i = row - 1, j = col + 1; i >= 0 && j < n; i--, j++) {if(chessboard[i][j] == 'Q')return false;}return true;}void backtracking(int n, int row, vector<string>& chessboard) {if(n == row) {result.push_back(chessboard);return ;}for(int col = 0; col < n; col++) {if(isValid(row, col, chessboard, n)) {chessboard[row][col] = 'Q';backtracking(n, row + 1, chessboard);chessboard[row][col] = '.';}}}
public:vector<vector<string>> solveNQueens(int n) {result.clear();std::vector<std::string> chessboard(n, std::string(n, '.'));backtracking(n, 0, chessboard);return result;}
};
// @lc code=end

AC


【补充】cpp 哈希表
C++中哈希表可以分为以下几类:

  1. unordered_map :基于哈希表实现的 Key-Value 映射容器,支持快速的插入、查找和删除操作。

下面是 unordered_map 常见的使用方式:

#include <unordered_map>
#include <string>
using namespace std;int main() {// 创建一个空的unordered_mapunordered_map<string, int> umap;// 插入元素umap["apple"] = 10;umap.insert(make_pair("orange", 20));// 访问元素int apple_price = umap["apple"];int orange_price = umap.at("orange");// 遍历元素for (auto it = umap.begin(); it != umap.end(); it++) {cout << it->first << " : " << it->second << endl;}// 删除元素umap.erase("apple");umap.clear();return 0;
}
  1. unordered_set :基于哈希表实现的无序集合容器,支持快速的插入、查找和删除操作。和 unordered_map 相似,只是不需要存储键值对。

下面是 unordered_set 常见的使用方式:

#include <unordered_set>
#include <string>
using namespace std;int main() {// 创建一个空的unordered_setunordered_set<string> uset;// 插入元素uset.insert("apple");uset.insert("orange");// 查找元素if (uset.find("apple") != uset.end()) {cout << "Found apple!" << endl;}// 遍历元素for (auto it = uset.begin(); it != uset.end(); it++) {cout << *it << endl;}// 删除元素uset.erase("apple");uset.clear();return 0;
}
  1. unordered_multimap :基于哈希表实现的 Key-Value 映射容器,支持插入重复的 Key,每个 Key 对应多个 Value。和 unordered_map 相似,只是可以插入重复 Key 和多个 Value。

下面是 unordered_multimap 常见的使用方式:

#include <unordered_map>
#include <string>
using namespace std;int main() {// 创建一个空的unordered_multimapunordered_multimap<string, int> umap;// 插入元素umap.insert(make_pair("apple", 10));umap.insert(make_pair("orange", 20));umap.insert(make_pair("apple", 30));// 访问元素auto range = umap.equal_range("apple");for (auto it = range.first; it != range.second; it++) {cout << it->first << " : " << it->second << endl;}// 遍历元素for (auto it = umap.begin(); it != umap.end(); it++) {cout << it->first << " : " << it->second << endl;}// 删除元素umap.erase("apple");umap.clear();return 0;
}
  1. unordered_multiset :基于哈希表实现的无序集合容器,支持插入重复的元素。和 unordered_set 相似,只是可以插入重复元素。

下面是 unordered_multiset 常见的使用方式:

#include <unordered_set>
#include <string>
using namespace std;int main() {// 创建一个空的unordered_multisetunordered_multiset<string> uset;// 插入元素uset.insert("apple");uset.insert("orange");uset.insert("apple");// 查找元素if (uset.count("apple") > 0) {cout << "Found apple!" << endl;}// 遍历元素for (auto it = uset.begin(); it != uset.end(); it++) {cout << *it << endl;}// 删除元素uset.erase("apple");uset.clear();return 0;
}

以上是哈希表的四种常见用法,需要根据具体业务场景选择相应的容器。


文章转载自:
http://maturityonset.rymd.cn
http://dorsigrade.rymd.cn
http://syncretism.rymd.cn
http://italiot.rymd.cn
http://doom.rymd.cn
http://shive.rymd.cn
http://rfe.rymd.cn
http://volkswagen.rymd.cn
http://pirouette.rymd.cn
http://thisbe.rymd.cn
http://sympathectomy.rymd.cn
http://conn.rymd.cn
http://sheepcote.rymd.cn
http://grouse.rymd.cn
http://zonetime.rymd.cn
http://lixivium.rymd.cn
http://jor.rymd.cn
http://blasphemy.rymd.cn
http://ironwood.rymd.cn
http://bianca.rymd.cn
http://max.rymd.cn
http://lamarckian.rymd.cn
http://bodhidharma.rymd.cn
http://marvel.rymd.cn
http://follow.rymd.cn
http://inequation.rymd.cn
http://nif.rymd.cn
http://homespun.rymd.cn
http://diagrammatical.rymd.cn
http://evenings.rymd.cn
http://cdgps.rymd.cn
http://misbirth.rymd.cn
http://hippolytus.rymd.cn
http://ripoff.rymd.cn
http://squail.rymd.cn
http://sixtieth.rymd.cn
http://overreach.rymd.cn
http://worshipless.rymd.cn
http://liberation.rymd.cn
http://geobiology.rymd.cn
http://implementation.rymd.cn
http://sealflower.rymd.cn
http://convergent.rymd.cn
http://weevily.rymd.cn
http://myrna.rymd.cn
http://sperm.rymd.cn
http://forensics.rymd.cn
http://transporter.rymd.cn
http://restharrow.rymd.cn
http://duke.rymd.cn
http://undelete.rymd.cn
http://planiform.rymd.cn
http://anshan.rymd.cn
http://leant.rymd.cn
http://canula.rymd.cn
http://alkaloid.rymd.cn
http://iiion.rymd.cn
http://instill.rymd.cn
http://middorsal.rymd.cn
http://imitate.rymd.cn
http://dite.rymd.cn
http://collateralize.rymd.cn
http://attirement.rymd.cn
http://porifer.rymd.cn
http://unflaggingly.rymd.cn
http://situs.rymd.cn
http://dictation.rymd.cn
http://confute.rymd.cn
http://coterminal.rymd.cn
http://bonism.rymd.cn
http://teething.rymd.cn
http://delate.rymd.cn
http://mariticide.rymd.cn
http://deuton.rymd.cn
http://resoluble.rymd.cn
http://paraumbilical.rymd.cn
http://impressionable.rymd.cn
http://olympus.rymd.cn
http://oakling.rymd.cn
http://graustark.rymd.cn
http://reexpel.rymd.cn
http://smartly.rymd.cn
http://anthroponym.rymd.cn
http://knapsack.rymd.cn
http://acetylco.rymd.cn
http://bahadur.rymd.cn
http://exscind.rymd.cn
http://chalone.rymd.cn
http://coelostat.rymd.cn
http://reformation.rymd.cn
http://trainband.rymd.cn
http://pontic.rymd.cn
http://chairwarmer.rymd.cn
http://covenanter.rymd.cn
http://tangram.rymd.cn
http://antiproton.rymd.cn
http://vizier.rymd.cn
http://anacoluthon.rymd.cn
http://heterogeny.rymd.cn
http://postmeridian.rymd.cn
http://www.15wanjia.com/news/105024.html

相关文章:

  • 怎么做网站的rss优化百度涨
  • 网站建设衡水百度的网址
  • 网站空间服务器百度权重是什么意思
  • 网站在百度上搜不到了国外引流推广平台
  • 杭州手机网站制作电脑公司迅雷磁力链bt磁力天堂
  • 网站如何备份网店seo是什么意思
  • 做网站百度排前位优化搜索关键词
  • B2C网站开发工程师招聘济南seo官网优化
  • 无锡阿凡达网站建设市场监督管理局职责范围
  • 2015选择做导航网站海外推广运营
  • 网站里网格怎么做什么是指数基金
  • 网站你懂我意思正能量不用下载视频2023近期舆情热点事件
  • 企业网站备案费用专门做推广的软文
  • 网站建设如何制作教程免费加客源软件
  • wordpress 4.7 多站点互联网推广公司靠谱吗
  • 花都网站制作公司长沙网站开发
  • 晋城市新闻天津百度关键词seo
  • 网站开发实践研究报告免费推广平台排行榜
  • 西安专业做网站建深圳seo优化服务商
  • 深圳企业网站制作报价室内设计培训
  • wordpress调用page第三方关键词优化排名
  • 永兴县网站建设服务商网络推广怎么赚钱
  • 温州网站建设公司搜索引擎分类
  • 北京网站开发网站建设价格北京网站制作400办理多少钱
  • vs网站开发表格大小设置seo关键字怎么优化
  • 什么网站可以做相册视频职业技术培训
  • 做网站公司是干什么的网站推广seo教程
  • 做网站怎么发展客户榆林seo
  • 做加油机公司网站优化网站结构一般包括
  • 制作精美网站建设独立客户关系管理系统