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

犀牛网站建设建筑施工模板

犀牛网站建设,建筑施工模板,益阳网站建设广告,做网站哪里学LeetCode 39.组合总和 题目链接&#xff1a; LeetCode 39.组合总和 解题思路&#xff1a; 用回溯的方法&#xff0c;&#xff0c;注意这次回溯不是i1&#xff0c;而是i&#xff0c;是因为可用重复选取。 代码&#xff1a; class Solution { public:vector<vector<i…

LeetCode 39.组合总和

题目链接:

LeetCode 39.组合总和

解题思路:

用回溯的方法,,注意这次回溯不是i+1,而是i,是因为可用重复选取。

代码:

class Solution {
public:vector<vector<int>>result;vector<int>path;int sum=0;void traversal(vector<int>candidates,int target,int Index){if(sum==target){result.push_back(path);return;}else if(sum>target){return;}for(int i=Index;i<candidates.size();i++){path.push_back(candidates[i]);sum+=candidates[i];traversal(candidates,target,i);sum-=candidates[i];path.pop_back();}}vector<vector<int>> combinationSum(vector<int>& candidates, int target) {traversal(candidates,target,0);return result;}
};

LeetCode 40.组合总和2

题目链接:

LeetCode 40.组合总和2


解题思路:

用used数组看前面元素是否使用过,之后将数组排序,当和前面元素重复且前面元素没用过时,元素进行下一个,来去重。

代码:

class Solution {
public:vector<vector<int>>result;vector<int>path;void traversal(vector<int>& candidates, int target, int Index,int sum,vector<bool>used){if(sum==target){result.push_back(path);return;}for(int i=Index;i<candidates.size()&&sum+candidates[i]<=target;i++){if(i>0&&candidates[i]==candidates[i-1]&&used[i-1]==false){continue;}path.push_back(candidates[i]);sum+=candidates[i];used[i] =true;traversal(candidates,target,i+1,sum,used);sum-=candidates[i];path.pop_back();used[i]=false;}}vector<vector<int>> combinationSum2(vector<int>& candidates, int target) {sort(candidates.begin(),candidates.end());path.clear();result.clear();vector<bool>used(candidates.size(),false);traversal(candidates,target,0,0,used);return result;}
};

LeetCode 131.分割回文串

题目链接:

LeetCode 131.分割回文串


解题思路:

将切割类比为组合问题,将元素索引变化为切割位置,逐个判断是不是回文的,之后进行回溯。

代码:

class Solution {
public:bool isPalindrome(const string& s, int start, int end) {for (int i = start, j = end; i < j; i++, j--) {if (s[i] != s[j]) {return false;}}return true;}vector<vector<string>> result;vector<string> path;void backtracking(string s, int Index) {if (Index >= s.size()) {result.push_back(path);return;}for (int i = Index; i < s.size(); i++) {if (isPalindrome(s, Index, i)) {path.push_back(s.substr(Index, i - Index + 1));} else {continue;}backtracking(s, i + 1);path.pop_back();}}vector<vector<string>> partition(string s) {backtracking(s, 0);return result;}
};

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

相关文章:

  • 哪些网站是python做的wordpress两个头部
  • 昆明网站建设注意事项网站建设文献英文
  • 百度站长统计建站网站系统
  • 公司域名备案网站名称分类信息 wordpress
  • 用一个域名免费做网站个人如何在企业网站做实名认证
  • 类似淘宝的网站怎么做的wap盛唐建站
  • 昆明做网站建设的公司排名网络营销创意案例
  • 西北电力建设第一工程公司网站网站备案 快速
  • 自贡做网站公司行业app开发公司
  • 四川省建设厅职改办网站做小程序商城
  • dw如何制作自己的网站网站建设技术团队经验丰富
  • 有后台的网站如何建设天眼查公司注册信息
  • 网店网站技术方案微信公众号对接wordpress教程
  • 用于做网站的软件wordpress 删除边栏
  • 做网站代码第一不淘宝网络营销方案
  • 网站英语培训营销论坛网站建设
  • 怀仁网站建设摄影网站有哪些功能
  • 网站下载免费新版网站网站做庄是怎样做
  • 自学网站免费网络科技公司是做什么的
  • 佛山专业做网站的东莞抖音代运营公司
  • 网站优化公司电话wordpress获取指定id分类名称
  • 怎么做vip网站网页设置快捷键
  • qq靓号申请免费网站网上怎么注册公司免费的
  • 产品网站怎么做超链接什么是电子商务数据
  • 黑豹站群系统个人介绍html代码简单
  • 上海高端做网站wordpress转移空间
  • wordpress 两个网站描述网站建设的具体流程
  • 个人网站做微擎公司企业简介
  • 需求网站建设wordpress导出文章
  • 深圳福田专业网站推广开发板arduino