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

wordpress远方的雪百度seo关键词优化排名

wordpress远方的雪,百度seo关键词优化排名,织梦做中英文网站步骤,仙桃网站制作网站设计理论基础 回溯法和递归不可分割,回溯法是一种穷举的方法,通常需要剪枝来降低复杂度。回溯法有一个选择并退回的过程,可以抽象为树结构,回溯法的模板如下: void backtracking(参数) {if (终止条件) {存放结果;return;}…

理论基础 

回溯法和递归不可分割,回溯法是一种穷举的方法,通常需要剪枝来降低复杂度。回溯法有一个选择并退回的过程,可以抽象为树结构,回溯法的模板如下:

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

 77. 组合  

这道题是回溯的经典题目,按照递归三步走:

参数:

在这里要定义两个全局变量,一个用来存放符合条件单一结果,一个用来存放符合条件结果的集合。函数里一定有两个参数,既然是集合n里面取k个数,那么n和k是两个int型的参数。

然后还需要一个参数,为int型变量startIndex,这个参数用来记录本层递归的中,集合从哪里开始遍历(集合就是[1,...,n] )。

回溯函数结束条件:

path这个数组的大小如果达到k,说明我们找到了一个子集大小为k的组合了,此时用result二维数组,把path保存起来,并终止本层递归。

单层搜索的过程

回溯法的搜索过程就是一个树型结构的遍历过程,在如下图中,可以看出for循环用来横向遍历,递归的过程是纵向遍历。

77.组合1

如此我们才遍历完图中的这棵树。for循环每次从startIndex开始遍历,然后用path保存取到的节点i。可以看出backtracking(递归函数)通过不断调用自己一直往深处遍历,总会遇到叶子节点,遇到了叶子节点就要返回。backtracking的下面部分就是回溯的操作了,撤销本次处理的结果。

此外:比较重要的剪枝部分:

可以剪枝的地方就在递归中每一层的for循环所选择的起始位置

如果for循环选择的起始位置之后的元素个数 已经不足 我们需要的元素个数了,那么就没有必要搜索了。注意代码中i,就是for循环里选择的起始位置。

for (int i = startIndex; i <= n; i++) {

优化过程如下:

  1. 已经选择的元素个数:path.size();

  2. 还需要的元素个数为: k - path.size();

  3. 在集合n中至多要从该起始位置 : n - (k - path.size()) + 1,开始遍历

为什么有个+1呢,因为包括起始位置,我们要是一个左闭的集合。举个例子,n = 4,k = 3, 目前已经选取的元素为0(path.size为0),n - (k - 0) + 1 即 4 - ( 3 - 0) + 1 = 2。

最终详细代码如下:

class Solution
{
public:vector<int> path;vector<vector<int>> res;void backTracking(int n, int k, int startindex) {//endif (path.size() == k) {res.push_back(path);return;}// backtrackingfor (int i = startindex; i <= n - (k - path.size()) + 1; i++) {path.push_back(i);backTracking(n, k, i + 1);path.pop_back();}}vector<vector<int>> combine(int n, int k) {backTracking(n, k, 1);return res;}
};

http://www.ds6.com.cn/news/79926.html

相关文章:

  • 2014网站备案app怎么开发出来的
  • 免费自助建站软件2345浏览器下载安装
  • 网站建设交流论坛网络seo关键词优化技巧
  • 企业营销型网站团队百度百度地图
  • 借钱软件推广微信hyhyk1seo关键词排名技巧
  • 邯郸网站建设安联网络公司如何进行线上推广
  • 国外引流推广平台郑州官网关键词优化公司
  • 资讯网站的好处互联网平台推广怎么做
  • 男人和男人做爰漫画网站seo百度推广
  • 南宁公司网站建设新闻头条今日要闻军事
  • 怎样做cms电影网站赚钱长沙网站推广排名
  • 做网站 用什么做数据库最好新产品市场推广方案
  • 公司做网站比较好的平台百度网盘搜索引擎官方入口
  • 轻松筹 做的网站价格怎么优化网站关键词排名
  • 做一个公司网站的费用做个公司网站一般需要多少钱
  • 个人网站建设的国外文献综述免费模板素材网站
  • 梅州网站建设商丘网站建设公司
  • 基于php的网站开发百度seo点击软件
  • 做网站 兼职seo优化多少钱
  • 客服外包10大平台小吴seo博客
  • 广东省住房和建设委员会网站百度关键词工具
  • 外贸seo网站推广推广网站多少钱
  • 好的flash网站网络广告策划书范文
  • 响应式网站建设济南长尾关键词在线查询
  • 九龙坡做网站百度助手下载安装
  • 做爰片的网站最常用的搜索引擎有哪些
  • wordpress安装在vps潮州seo建站
  • 设计公司的logo广州关键词seo
  • wordpress怎么搭建美女图库模板重庆seo怎么样
  • 郑州做公司网站的免费b站网页推广