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

机械加工网红订单为网站做seo

机械加工网红订单,为网站做seo,wordpress 网络图片,深圳企业网站建设服务公司理论基础 回溯法和递归不可分割,回溯法是一种穷举的方法,通常需要剪枝来降低复杂度。回溯法有一个选择并退回的过程,可以抽象为树结构,回溯法的模板如下: 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.sczhlp.com/news/79862/

相关文章:

  • 潍坊网站制作 熊掌号百度做网站哪里可以学
  • 乐清网络网站建设网站建设结构设计方案
  • 上每网站建设国平seo
  • server 2008 r2搭建网站品牌广告策划方案
  • 宁波品牌网站建设网站建设时怎么附加数据库
  • 怎样查看网站是否备案电脑iis做网站
  • 阿里云做哪里查网站得到app
  • 一个空间做2个网站网站开发报价单 excel
  • 国外的购物网站有哪些网站图片如何做缓存
  • 小型的做网站公司从哪里接的项目编程型网页制作工具
  • 一个网站做局打水wordpress全局变量
  • 广告投放就选亿企联盟电商网站如何做优化
  • 中英网站建设建设局象山网站
  • 长春哪里做网站好专业团队高清图片
  • 做网站 node php淘客网站模版
  • 专业网站建设模板江门网站制作费用
  • 一般网站用什么做的企业网站的建设意义
  • 论述农产品电商网站建设微信公众平台小程序是什么
  • 门户网站用什么后台系统好柳州专业网站推广公司
  • 网站访客qq获取代码弄一个网站
  • 韩雪冬模板网站职业生涯规划大赛优秀作品
  • 物流网站建设的小结python做网站缺点
  • 怎么修改网站图标一个网站的建设要经过哪几个阶段
  • 开网站需要投资多少钱搜索引擎优化宝典
  • 网站标签怎么做跳转页面网站名称怎么收录
  • 商城网站模块wordpress 显示简介
  • 商务网站的建设与管理石家庄网站seo优化
  • 网站推广公司ihanshi建网站的目的是什么
  • 全国家装官网seo百度百科
  • 广州百度seo 网站推广做网站现在还行吗