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

网站建设前期目标揭阳网站制作方案定制

网站建设前期目标,揭阳网站制作方案定制,湖北企业模板建站开发,专业上海网站建设公司排名今天的练习基本就是回溯法组合问题,这一节只要看labuladong即可。 组合问题: 39. 组合总和---------------------形式三,元素无重可复选 链接:代码随想录 一次对,同样在进入下次循环时,注意startindex是从j…

 今天的练习基本就是回溯法组合问题,这一节只要看labuladong即可。

 组合问题:

39. 组合总和---------------------形式三,元素无重可复选

链接:代码随想录

 一次对,同样在进入下次循环时,注意startindex是从j开始,还是j+1开始

画图:

 代码:

class Solution {
public:
// 同一个数字可以无限制重复被选取 。如果至少一个数字的被选数量不同,则两种组合是不同的。 
vector<vector<int>>v;
vector<int>mv;vector<vector<int>> combinationSum(vector<int>& candidates, int target) {backtracing(candidates,target,0);return v;}void backtracing(vector<int> &candidates,int target,int startIndex){if(target<0){return;}else if(target==0){v.push_back(mv);}else{for(int j=startIndex;j<candidates.size();j++){mv.push_back(candidates[j]);backtracing(candidates,target-candidates[j],j);mv.pop_back();}}}
};

代码随想录版,基本一样

class Solution {
private:vector<vector<int>> result;vector<int> path;void backtracking(vector<int>& candidates, int target, int sum, int startIndex) {if (sum == target) {result.push_back(path);return;}// 如果 sum + candidates[i] > target 就终止遍历for (int i = startIndex; i < candidates.size() && sum + candidates[i] <= target; i++) {sum += candidates[i];path.push_back(candidates[i]);backtracking(candidates, target, sum, i);sum -= candidates[i];path.pop_back();}}
public:vector<vector<int>> combinationSum(vector<int>& candidates, int target) {result.clear();path.clear();sort(candidates.begin(), candidates.end()); // 需要排序backtracking(candidates, target, 0, 0);return result;}
};

40.组合总和II --------------形式二,元素可重,不可复选

链接:代码随想录

 

 代码,第一遍做错

class Solution {
public:vector<vector<int>>v;vector<int>mv;vector<vector<int>> combinationSum2(vector<int>& candidates, int target) {backtracing(candidates,target,0);return v;}void backtracing(vector<int>&candidates,int target,int startIndex){if(target<0){return;}else if(target==0){v.push_back(mv);}else{for(int j=startIndex;j<candidates.size();j++){mv.push_back(candidates[j]);backtracing(candidates,target-candidates[j],j+1);mv.pop_back();}}}
};

报错:

 125 215重复

看labuladong这一节,讲的非常非常清晰

 

 

 

 一开始写的j大于0,不对

class Solution {
public:
//当给出的数组中存在重复的元素时,要通过给定数组的排序对组合/排列问题 排序进行去重
vector<vector<int>>v;
vector<int>mv;vector<vector<int>> combinationSum2(vector<int>& candidates, int target) {sort(candidates.begin(),candidates.end());backtracing(candidates,target,0);return v;}void backtracing(vector<int> & candidates,int target,int startIndex){if(target<0){return;}else if(target==0){v.push_back(mv);}else{for(int j=startIndex;j<candidates.size();j++){// 要对同一树层使用过的元素进行跳过if(j>startIndex && candidates[j]==candidates[j-1])//zhijisuandiyige{continue;}mv.push_back(candidates[j]);backtracing(candidates,target-candidates[j],j+1);mv.pop_back();}}}
};

131.分割回文串 

链接:代码随想录

 我的思路是没有,直接看了代码随想录。

 也就是隔板法,比如string.size===16,则有15个空位,第一块隔板在15个空位上随便选一个,然后再放第二块隔板(第二块隔板在第一块隔板后),再放第三块隔板(第三块隔板在第二块隔板后)。

树的每一层,是检验放一块隔板、两块隔板。。。直到放到第15块隔板的情况。

逻辑比较复杂。因为下一层是上一层隔板的位置,总之看代码随想录,我自己的逻辑还是稍微模糊。

class Solution {
public:// 想起最长回文串那道题,不懂这里为什么要用回溯。//先写一个回文串的函数.//按照例子一,可以重复//貌似是数学里的隔板问题。则对于长度为16的string,最多可以放15个隔板。最少可以放1个隔板,且是在15个空位中任意放1个、两个。。。15个隔板vector<vector<string>>v;vector<string>mv;vector<vector<string>> partition(string s) {backtracing(s,0);return v;  }void backtracing(string &s,int startIndex){if(startIndex==s.size()){v.push_back(mv);return;}else{for(int j=startIndex;j<s.size();j++){if(is_huiwen(s,startIndex,j)){mv.push_back(s.substr(startIndex,j-startIndex+1));backtracing(s,j+1);//这里写错了,应该是从下一个位置开始找mv.pop_back();}}}}bool is_huiwen(string &s,int l,int r){while(l<=r && s[l]==s[r]){l++;r--;}if(l>r){return true;}return false;}
};

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

相关文章:

  • 网站建设技术参数免费推广的预期效果
  • 俄文企业网站建设建设网站找什么问题
  • 凡客建站快车为企业规划网站注意什么
  • 公司网站做一下多少钱外贸soho怎么建网站
  • 沈阳网站开发程序员工资wordpress didiao
  • 做网站有一个火箭回顶部logo免费设计在线生成app
  • 网站怎么做显得简洁美观wordpress博客主题虎嗅
  • 网站php文件上传承德招聘信息网
  • 天津seo建站旅游网站规划建设方案
  • wordpress带微信二维码多个网站优化怎么做
  • 珠海做网站专业公司怎么套网站
  • 专业网站建设专业网站设计13个实用平面设计网站
  • 爱妮微如何做网站链接的网址动软代码生成器 做网站
  • 网站开发工作安排网站优化推广服务
  • 网站建设模板可用吗亚马逊电商平台官网
  • 石家庄网站建设模板服务php网站建设制作流程
  • 济南建设信用网网站网络推广平台哪家公司最好
  • 南宁建站公司wordpress挂马
  • 玉林网站推广桐庐建设局网站
  • 南京seo整站优化技术热转印 东莞网站建设
  • 义乌水务建设集团官方网站wordpress淘客板块
  • 智慧团建系统网站263邮箱个人登录
  • 机票网站建设方总1340812广告推广计划
  • 公司请外包做的网站怎么维护wordpress汉字验证码插件
  • 网页设计:编程学习网站素材品牌整合营销传播方案
  • 机械加工网站模板模拟装修效果的软件
  • 建站网站和维护需要会什么区别设置字体颜色的网站
  • 查网站排名如何建立网站是什么
  • 外贸商城网站开发书网站后台怎么用ftp打开
  • 大连三丰建设集团公司网站专有网络WordPress