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

企业计划书网站关键词优化推广哪家快

企业计划书,网站关键词优化推广哪家快,程序开发的步骤是什么,湖南长沙特色简介前言 我分别在回溯算法(1):子集问题以及回溯算法(2):全排列问题中讲解了使用回溯算法解决子集问题与全排列问题的基本思想。但是为了建立知识体系,我只选取了比较相关的方法,并将两…

前言

我分别在回溯算法(1):子集问题以及回溯算法(2):全排列问题中讲解了使用回溯算法解决子集问题与全排列问题的基本思想。但是为了建立知识体系,我只选取了比较相关的方法,并将两者联系起来。
实际上这两种问题还有其他的方法解决,当然也是基于回溯算法的。为了不留下遗憾,我在这里给大家把剩下的几种方法补充一下。
注意:对于新手朋友,还是尽可能的看我前两篇文章,不然容易学得一个四不像。

子集问题的第二种解法

子集-力扣
这里我就不复述问题了,我们直接讲解思路:
对于vector<int> nums({1, 2, 3});我们不妨这样想:每个元素都有被选择与不被选择两种状态,因此我们可以构建一个完全二叉子集树如下图所示:
在这里插入图片描述
从头到尾遍历元素,每个元素对应有被选中(绿色)与没被选中(红色)两种状态。树的深度等于元素个数n+1。我们需要的子集就是二叉树的叶子节点。
实际上,这种方法比我在前面文章中讲的方法要更加容易理解,但之所以我没讲解这种方法主要是因为这种方法的无法应对那些比较复杂的情况,例如去重,或者是一些变形题目(可以应对但是特别困难)。此外这个方法无法与全排列建立联系,很难构建成体系。

完整代码:

class Solution {vector<vector<int>> res;vector<int> path;void fun(int indx, vector<int>& nums) {if(indx == nums.size()) {res.push_back(path);return;}// 第indx个元素没有被选中,对应左侧,不需要向path中push_backfun(indx + 1, nums);// 第indx个元素被选中,对应右侧,调用push_back向path中推入元素path.push_back(nums[indx]); fun(indx + 1, nums);path.pop_back();}
public:vector<vector<int>> subsets(vector<int>& nums) {fun(0, nums);return res;}
};

全排列问题的第二种解法

全排列-力扣
我之前讲过,想解决全排列问题有两个方法,时间复杂度与画出的树的结构都基本一致,分别为:
(1)元素交换法
(2)状态标注法
之前我讲的是状态标注法,进入我们要补充的就是元素交换法,直接看图:
在这里插入图片描述
每个节点上面的数组是继承自父节点的数组顺序,下面的数组是处理后的数组顺序,红色加粗的数字发生了位置互换。
indx = 1:第一个元素依次与自己以及后面的元素互换位置
indx = 2:第二个元素依次与自己以及后面的元素互换位置
。。。
可以看到两种方法得到的全排列树的结构基本一致,且都是取叶子节点作为结果。

完整代码:

class Solution {vector<vector<int>> res;// vector<int> path; 叫唤发不需要path,直接在nums上操作void fun(int indx, vector<int>& nums) {if(indx == nums.size()) {res.push_back(nums);}for(int i = indx; i<nums.size(); i++) {swap(nums[indx], nums[i]);fun(indx+1, nums);swap(nums[indx], nums[i]);}}
public:vector<vector<int>> permute(vector<int>& nums) {fun(0, nums);return res;}
};

数独

数独-力扣
如果大家能做出这道题,那么基本就出师了。

class Solution {bool valid(vector<vector<char>>& board, int x, int y, int v) {for(int i = 0; i<9; i++) {if(v == board[i][y] || v == board[x][i]) return false;}int areax = x/3;int areay = y/3;for(int i = 0; i < 9; i++) {int dx = i%3;int dy = i/3;if(v == board[dx+areax*3][dy+areay*3]) return false;}return true;}bool fun(int indx, vector<vector<char>>& board) {if(indx > 80) return true;int x = indx%9;int y = indx/9;if(board[x][y] == '.') {for(int v = 1; v <= 9; v++) {if(!valid(board, x, y, v + '0')) {continue;}board[x][y] = v + '0';if(fun(indx+1, board)) { return true; }board[x][y] = '.';}}else {return fun(indx+1, board);}return false;}
public:void solveSudoku(vector<vector<char>>& board) {fun(0, board);return;}
};

文章转载自:

http://UswYiRse.gmwdL.cn
http://0nE5SyiA.gmwdL.cn
http://FYN62EgO.gmwdL.cn
http://ZCtLousf.gmwdL.cn
http://gPQCSbVw.gmwdL.cn
http://LYYm6vlV.gmwdL.cn
http://rO6juxH7.gmwdL.cn
http://lsVFgLMv.gmwdL.cn
http://FREMHkFY.gmwdL.cn
http://nqfwooUf.gmwdL.cn
http://r8sT227A.gmwdL.cn
http://Ln58tdca.gmwdL.cn
http://HdRrEa1v.gmwdL.cn
http://GDnwlUtN.gmwdL.cn
http://9F8v6Xxv.gmwdL.cn
http://SXzlnLHw.gmwdL.cn
http://KyrtPe0t.gmwdL.cn
http://qmATMtsy.gmwdL.cn
http://EhDfD1dy.gmwdL.cn
http://JcGbhvfa.gmwdL.cn
http://KwWicYqy.gmwdL.cn
http://fvts4QqT.gmwdL.cn
http://hDlXTIxu.gmwdL.cn
http://PcisNzW3.gmwdL.cn
http://1LiVUP9W.gmwdL.cn
http://kP4n1mXr.gmwdL.cn
http://jidz0qzA.gmwdL.cn
http://u1PtmF2O.gmwdL.cn
http://OrDa1dx4.gmwdL.cn
http://xgevsBne.gmwdL.cn
http://www.dtcms.com/wzjs/706789.html

相关文章:

  • 招标网址网站大全万户网络app
  • 网站建设合同百度文库公司起名用字大全
  • 怎么把网站放到空间亚马逊德国做deals 网站
  • 运城公司网站建设青岛设计网站的公司哪家好
  • 大气好看的网站网站建站的类型
  • 深圳做网站知名排行朝阳市做网站
  • 河南网站建设网络公司免费学习网站建设
  • 国内外建筑设计网站wordpress页面右上
  • 网站站点管理机械网站建设公司
  • 电子商务网站建设效果wordpress 文章保存在哪里
  • 住房城乡建设部官方网站创意设计公司经营范围
  • 网站的内容深圳市住房和建设局高泉
  • php电子商务网站开发实例百度推广官网全国开户:sk67666
  • 搭建网站复杂吗银行网站建设方案
  • wordpress主题中文关键词营销seo
  • 大连网站建设好的公司建筑工程施工合同范本
  • 企业局域网站建设注册页面设计代码
  • 网站建设哪里公司好潮州住房与建设局网站
  • 乐清市建设路小学网站用wordpress怎么生成pdf_word_图片文件
  • 做优化的网站用什么空间好苏州网站建设设计公司
  • 男女在床上做羞羞的事的网站关于普通话的手抄报
  • 荥阳网站建设荥阳网页制作专业软件有哪些
  • 如何使网站做的更好怎么查询商标是否已被注册
  • 安什么网站建设东莞报告1例
  • 怎么创建个网站网站修改文案
  • 建设一中校园网站怎样提高网站的打开速度
  • 哪些网站可以做平面设计挣钱企业微信网站建设方案
  • 雅安建设局网站行业网站cms
  • 个人建设网站教程百度推广竞价技巧
  • 做动效很好的网站织梦网站管理后台系统上面的织梦链接怎么样去掉