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

泰安中呼网站建设有限公司 概况wordpress注册未发送邮件

泰安中呼网站建设有限公司 概况,wordpress注册未发送邮件,北京ui培训机构排行,局域网算法沉淀——穷举、暴搜、深搜、回溯、剪枝综合练习三 01.字母大小写全排列02.优美的排列03.N 皇后04.有效的数独 01.字母大小写全排列 题目链接#xff1a;https://leetcode.cn/problems/letter-case-permutation/ 给定一个字符串 s #xff0c;通过将字符串 s 中的每个字… 算法沉淀——穷举、暴搜、深搜、回溯、剪枝综合练习三 01.字母大小写全排列02.优美的排列03.N 皇后04.有效的数独 01.字母大小写全排列 题目链接https://leetcode.cn/problems/letter-case-permutation/ 给定一个字符串 s 通过将字符串 s 中的每个字母转变大小写我们可以获得一个新的字符串。 返回 所有可能得到的字符串集合 。以 任意顺序 返回输出。 示例 1 输入s a1b2 输出[a1b2, a1B2, A1b2, A1B2]示例 2: 输入: s 3z4 输出: [3z4,3Z4]提示: 1 s.length 12s 由小写英文字母、大写英文字母和数字组成 思路 在处理英文字母时每个元素存在三种情况 不进行处理如果当前字母是英文字母并且是大写将其修改为小写如果当前字母是英文字母并且是小写将其修改为大写。 代码 class Solution {string path;vectorstring ret; public:vectorstring letterCasePermutation(string s) {dfs(s,0);return ret;}void dfs(string s,int pos){if(poss.size()){ret.push_back(path);return;}int chs[pos];path.push_back(ch);dfs(s,pos1);path.pop_back();if(ch0||ch9){int tmpchange(ch);path.push_back(tmp);dfs(s,pos1);path.pop_back();}}char change(char ch){if(chachz) ch-32;else ch32;return ch;} };02.优美的排列 题目链接https://leetcode.cn/problems/beautiful-arrangement/ 假设有从 1 到 n 的 n 个整数。用这些整数构造一个数组 perm下标从 1 开始只要满足下述条件 之一 该数组就是一个 优美的排列 perm[i] 能够被 i 整除i 能够被 perm[i] 整除 给你一个整数 n 返回可以构造的 优美排列 的 数量 。 示例 1 输入n 2 输出2 解释 第 1 个优美的排列是 [1,2]- perm[1] 1 能被 i 1 整除- perm[2] 2 能被 i 2 整除 第 2 个优美的排列是 [2,1]:- perm[1] 2 能被 i 1 整除- i 2 能被 perm[2] 1 整除示例 2 输入n 1 输出1提示 1 n 15 思路 在这个问题中我们需要在每一个位置上考虑所有的可能情况并确保不出现重复。通过深度优先搜索的方式不断地枚举每个数在当前位置的可能性并回溯到上一个状态直到枚举完所有可能性得到正确的结果。为了实现这一目标可以采用以下步骤 定义一个变量用来记录所有可能的排列数量使用一个一维数组 visited 标记元素的使用情况从第一个位置开始进行递归枚举每个数的可能性。 通过这样的深度优先搜索过程可以得到所有符合条件的排列。 代码 class Solution {bool check[16];int ret0,n; public:int countArrangement(int _n) {n_n;dfs(1);return ret;}void dfs(int pos){if(posn1){ret;return;}for(int i1;in;i){if(!check[i](pos%i0||i%pos0)){check[i]true;dfs(pos1);check[i]false;}}} };03.N 皇后 题目链接https://leetcode.cn/problems/n-queens/ 按照国际象棋的规则皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上并且使皇后彼此之间不能相互攻击。 给你一个整数 n 返回所有不同的 n 皇后问题 的解决方案。 每一种解法包含一个不同的 n 皇后问题 的棋子放置方案该方案中 Q 和 . 分别代表了皇后和空位。 示例 1 输入n 4 输出[[.Q..,...Q,Q...,..Q.],[..Q.,Q...,...Q,.Q..]] 解释如上图所示4 皇后问题存在两个不同的解法。示例 2 输入n 1 输出[[Q]]提示 1 n 9 思路 首先在每一行放置第一个皇后然后遍历棋盘的第二行在可行的位置放置第二个皇后再遍历第三行以此类推直到放置了n个皇后为止。 为了记录每一行放置的皇后的列数使用一个数组来记录。在每一行中尝试放置一个皇后并检查是否与前面已经放置的皇后冲突。如果没有冲突继续递归地放置下一行的皇后直到所有皇后都放置完毕然后记录这个方案。 在检查皇后是否冲突时可以使用一个数组来记录每一列是否已经放置了皇后并检查当前要放置的皇后是否会和已经放置的皇后冲突。对于对角线可以使用两个数组来记录从左上角到右下角的每一条对角线上是否已经放置了皇后以及从右上角到左下角的每一条对角线上是否已经放置了皇后。 对于对角线是否冲突的判断可以通过以下流程解决 从左上到右下相同对角线的行列之差相同从右上到左下相同对角线的行列之和相同。 因此需要创建用于存储解决方案的二维字符串数组 ret用于存储每个皇后的位置的一维整数数组 path以及用于记录每一列和对角线上是否已经有皇后的布尔型数组 checkCol、checkDig1 和 checkDig2。 代码 class Solution {bool checkCol[10],checkDig1[20],checkDig2[20];vectorvectorstring ret;vectorstring path;int n; public:vectorvectorstring solveNQueens(int _n) {n_n;path.resize(n,string(n,.));dfs(0);return ret;}void dfs(int row){if(rown){ret.push_back(path);return;}for(int col0;coln;col){if(!checkCol[col]!checkDig1[row-coln]!checkDig2[rowcol]){path[row][col]Q;checkCol[col]checkDig1[row-coln]checkDig2[rowcol]true;dfs(row1);path[row][col].;checkCol[col]checkDig1[row-coln]checkDig2[rowcol]false;}}} };04.有效的数独 题目链接https://leetcode.cn/problems/valid-sudoku/ 请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。请参考示例图 注意 一个有效的数独部分已被填充不一定是可解的。只需要根据以上规则验证已经填入的数字是否有效即可。空白格用 . 表示。 示例 1 输入board [[5,3,.,.,7,.,.,.,.] ,[6,.,.,1,9,5,.,.,.] ,[.,9,8,.,.,.,.,6,.] ,[8,.,.,.,6,.,.,.,3] ,[4,.,.,8,.,3,.,.,1] ,[7,.,.,.,2,.,.,.,6] ,[.,6,.,.,.,.,2,8,.] ,[.,.,.,4,1,9,.,.,5] ,[.,.,.,.,8,.,.,7,9]] 输出true示例 2 输入board [[8,3,.,.,7,.,.,.,.] ,[6,.,.,1,9,5,.,.,.] ,[.,9,8,.,.,.,.,6,.] ,[8,.,.,.,6,.,.,.,3] ,[4,.,.,8,.,3,.,.,1] ,[7,.,.,.,2,.,.,.,6] ,[.,6,.,.,.,.,2,8,.] ,[.,.,.,4,1,9,.,.,5] ,[.,.,.,.,8,.,.,7,9]] 输出false 解释除了第一行的第一个数字从 5 改为 8 以外空格内其他数字均与 示例1 相同。 但由于位于左上角的 3x3 宫内有两个 8 存在, 因此这个数独是无效的。思路 创建三个数组标记行、列以及 3*3 小方格中是否出现 1~9 之间的数字即可。 代码 class Solution {int row[9][10];int col[9][10];int grid[3][3][10]; public:bool isValidSudoku(vectorvectorchar board) {for(int i0;i9;i){for(int j0;j9;j){if(board[i][j]!.){int numboard[i][j]-0;if(!row[i][num]!col[j][num]!grid[i/3][j/3][num]){row[i][num]col[j][num]grid[i/3][j/3][num]1;}else return false;}}}return true;} };
http://www.zqtcl.cn/news/231346/

相关文章:

  • 做网站 怎么赚钱吗安乡网站制作
  • 国外展览展示设计网站沧州网络推广管理公司
  • 物流信息平台网站建设深圳做手机网站建设
  • 品牌型网站的特点领导视察网站建设
  • 如何自己做网站推广淘宝客佛山小程序开发公司
  • 天津市建设局网站口碑营销相关案例
  • 怎么有自己的网站厂字形网页布局网站
  • 广州市财贸建设开发监理网站工程建设企业等采用
  • 网站建设规模设想自己建立网站教程
  • 兰溪建设局网站门户网站建设招标
  • 用wp做网站备案怎么查自己的邮箱号
  • 苏州企业网站建设公司价格数字媒体应用 网站开发
  • 西宁做网站seo四川省的住房和城乡建设厅网站首页
  • 响应式网站 有哪些弊端可以发广告的网站
  • wordpress 漫画站wordpress加目录
  • 天津商城网站制作深圳品牌网站设计公司
  • 初学网站开发上海市普陀区建设规划局网站
  • 网站开发完成后如何发布做网站用vs还是dw
  • 怎么看网站是否备案可信赖的菏泽网站建设
  • 做网站的优点系统软件开发服务
  • 深圳品牌营销网站建设尚品中国网站
  • 新建网站怎么做关键词南阳手机网站制作
  • 宁波网站建设应届生公司网站备案需要每年做吗
  • 汽车设计网站论坛网站 备案
  • 网站源码带手机版展示型网站首页设计解析
  • 备案的网站名称能重复备案吗为什么打开Wordpress很慢
  • vps网站建设个人网站二级域名做淘宝客
  • 用cms织梦做网站图文教程wordpress分类文章排序
  • 台州网站策划云南招聘网
  • 网站如何设定关键词wordpress 文章关联