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

网站建设存在的问题设计公司排名前十强

网站建设存在的问题,设计公司排名前十强,外贸营销平台推广,中山网站建设文化价格从这道题开始,我们正式进入回溯算法的学习。之前在二叉树中只是接触到了一丢丢,而这里我们将使用回溯算法解决很多经典问题。 那么这道题是如何使用回溯算法的呢?在讲回溯之前,先说明一下此题是如何递归的。毕竟回溯递归不分家&a…

从这道题开始,我们正式进入回溯算法的学习。之前在二叉树中只是接触到了一丢丢,而这里我们将使用回溯算法解决很多经典问题。

那么这道题是如何使用回溯算法的呢?在讲回溯之前,先说明一下此题是如何递归的。毕竟回溯递归不分家,必须先有递归,才会有回溯。而这里的递归就是在题目所给集合的子集中使用for循环选择数字。考虑组合的无序性(1,2和2,1是相同的组合),那么在对递归得到的子集进行遍历时,需要用变量控制for循环的起始位置。另外,如果题目说明不能取重复数字,那么在对该控制变量赋值时,需要注意。举个例子:最开始的集合有1,2,3,4,那么我们第一次一定是从这个集合中选一个数。为了保证之后不重复选择1,我们下一步一定是从2,3,4这个集合中选一个数,以此类推。我们可以发现递归得到的子集范围在不断缩小。接下来讲一下回溯,我们需要写一个for循环将递归函数包起来,这个for循环的作用是遍历当前集合的所有数,假设在第一个集合中我们已经选了1这个数,然后递归选择第二个数,那么在选择第二个数的递归函数结束之后,我们可以将1弹出存储组合的数组,并通过for循环选择第一个集合中的第二个数,这样就得到了其他组合情况。这道题大家可以当做模版题记下来,之后的回溯算法的代码风格都与这道题大差不差。可以结合我下面的代码及注释理解这道题。

代码及注释如下:

class Solution {
private:vector<vector<int>> result; // 存放符合条件结果的集合vector<int> path; // 用来存放符合条件结果void backtracking(int n, int k, int startIndex) {if (path.size() == k) {result.push_back(path);return;}for (int i = startIndex; i <= n; i++) {path.push_back(i); // 处理节点backtracking(n, k, i + 1); // 递归path.pop_back(); // 回溯,撤销处理的节点}}
public:vector<vector<int>> combine(int n, int k) {result.clear(); // 可以不写path.clear();   // 可以不写backtracking(n, k, 1);return result;}
};

http://www.tj-hxxt.cn/news/110573.html

相关文章:

  • 网站建设江苏百拓百度推广入口官网
  • 个人可以建购物网站吗seo网站推广专员招聘
  • 想做网站要学什么网页制作基础教程
  • 职业中学网站建设优秀网站网页设计图片
  • wordpress升级数据库郑州整站网站优化
  • 上海建站网站简洁案例新媒体运营师证书
  • 做网站有意思吗长沙网站seo分析
  • 自己主机域名网站开发网推平台
  • 网站转移动版seo企业优化顾问
  • 新手怎么开传媒公司杭州优化公司多少钱
  • 公司做网站买服务器多少钱重庆网站
  • 新网网站管理平台推广营销
  • 宿迁网站建设网络营销推广的方法有哪些
  • 东莞专业微网站建设什么是互联网营销师
  • 小猪网站怎么做的如何推广店铺呢
  • 网站跟网页有什么区别建个人网站的详细步骤
  • 中国经济排名世界第几站长工具seo综合查询权重
  • 公司网站设计怎么做百度应用中心
  • 电商网站建设那家好湖北seo网站推广
  • 软件测试网站开发企业营销策划
  • 网站开发视频鼓楼网页seo搜索引擎优化
  • 做网站公司需要帮客户承担广告法吗百度服务中心人工24小时电话
  • 网站官网认证怎么做的大庆建站公司
  • 网站小编可以在家做吗百度账号注册申请
  • 徐州专业网站建设公司国外网站推广公司
  • 网站建设与app开发数据推广公司
  • 视频网站seo实战广州网络优化最早的公司
  • 武汉网站建设开发公司专业网站优化外包
  • 常州模板建站代理专业做网站设计
  • 网站链接分析网上广告怎么推广