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

东莞营销型高端网站建设中山品牌网站建设

东莞营销型高端网站建设,中山品牌网站建设,注册安全工程师报考条件及科目,wordpress设置密码链接backtrack(k,n,sum,i1); backtrack(k,n,sum,i); 在 C 中,递增运算符 i 和表达式 i1 之间有显著的区别: i 是后置递增运算符,表示先使用 i 的当前值,然后将 i 加 1。i1 是一个简单的算术运算,返回 i 的当前值加 1&…
backtrack(k,n,sum,i+1);
backtrack(k,n,sum,i++);

在 C++ 中,递增运算符 i++ 和表达式 i+1 之间有显著的区别:

  • i++ 是后置递增运算符,表示先使用 i 的当前值,然后将 i 加 1。
  • i+1 是一个简单的算术运算,返回 i 的当前值加 1,但不改变 i 的值。
backtrack(k, n, sum, i + 1);  // 正确, 传递 i 的下一值,但不改变 i 的值
backtrack(k, n, sum, i++);    // 错误, 传递当前 i 的值,然后 i 自增1

详细描述

  1. backtrack(k, n, sum, i + 1);这里传递了 i 的值加 1,但是 i 本身的值不会改变。所以,这并不会对当前递归状态下的 i 产生影响。
  2. backtrack(k, n, sum, i++);在这种情况下,i++ 是后置递增运算符,这意味着当前函数调用传递的是 i 的原始值,然后 i 自增 1。这可能是不想要的效果,特别是在递归函数调用中,因为它在修改 i 之后继续使用它,可能会导致索引管理混乱。

正确的方法:

一般来说,在递归和回溯中,你希望传递给下一层递归的是当前索引的下一个值而不是原始值并自增。所以,使用 i + 1 更加合适。

案例:

class Solution {
public:vector<int> path;vector<vector<int>> res;void backtrack(int k,int n,int sum,int start){if(path.size()==k){if(sum==n){res.push_back(path);}return;}for(int i=start;i<=9;i++){sum+=i;path.push_back(i);backtrack(k,n,sum,i++);sum-=i;path.pop_back();}}vector<vector<int>> combinationSum3(int k, int n) {backtrack(k,n,0,1);return res;}
};


通过调试发现:

时间和空间复杂度

 

http://www.yayakq.cn/news/467209/

相关文章:

  • 湘潭网站建设公司有哪些广告推广的好处
  • 外贸设计网站建设鼓楼公司网站建设费用
  • 企业信息系统查询系统网站seo排名公司
  • wordpress的站点地址和做学习交流网站
  • wordpress写博客插件什么叫seo网络推广
  • 专门做调研的网站成全高清视频免费观看
  • 仿淘宝商城网站开源系统dede网站婚纱模板
  • 网站查询地址360优化大师旧版本
  • 长沙高端网站建设公司外贸网站域名服务商
  • 网站开发实验报告总结360线上推广
  • wordpress 社交平台保定seo公司
  • 网站运营seo招聘必应搜索国际版
  • 做网站刷东西外贸网站发外链
  • 无锡网站公司新手怎么引流推广
  • 如何做网站卖画商城网站前期seo应该怎么做
  • 上海十大网站排名网站该怎么做链接
  • 品牌网站建设 意义HTML模板怎么导入WordPress
  • 工信部 网站 邮箱wordpress 安装后梅花
  • 网站栏目一般有哪些葫岛百度seo
  • 旅游景点网站建设自己做网站需要买什么
  • 监察部门网站建设方案深圳市平面设计协会
  • 网站开发的人员网页设计论文的研究内容
  • 合阳县建设局网站wordpress漏洞框架
  • dede 网站打开慢德州力点科技 网站建设
  • 安徽宿州住房与建设网站自适应网页如何设计
  • 佛山网站推广优化公司重庆电子工程职业学院教务网
  • 业网站建设wordpress 博客源码
  • 莒县住房和建设局网站网络广告投放渠道有哪些
  • 可以做科学模拟实验的网站网站关键词优化seo关键词之间最好用逗号
  • 古建设工程造价管理协会网站深圳网站建设智能 乐云践新