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

dart语言做的网站seo公司服务

dart语言做的网站,seo公司服务,广告传媒公司的网站应该怎么做,wordpress放视频教程回溯法模板 void backtracking(参数) {if (终止条件) {存放结果;return;}for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) {处理节点;backtracking(路径,选择列表); // 递归回溯,撤销处理结果} }理解 从…

回溯法模板

void backtracking(参数) {if (终止条件) {存放结果;return;}for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) {处理节点;backtracking(路径,选择列表); // 递归回溯,撤销处理结果}
}

理解

 从图中看出for循环可以理解是横向遍历,backtracking(递归)就是纵向遍历,这样就把这棵树全遍历完了,一般来说,搜索叶子节点就是找的其中一个结果了

回溯法解决的问题都可以抽象为树形结构(N叉树),用树形结构来理解回溯就容易多了

第77题. 组合

 理解

回溯代码

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;}
};

剪枝操作

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 - (k - path.size()) + 1; i++) { // 优化的地方path.push_back(i); // 处理节点backtracking(n, k, i + 1);path.pop_back(); // 回溯,撤销处理的节点}}
public:vector<vector<int>> combine(int n, int k) {backtracking(n, k, 1);return result;}
};

216.组合总和III

思路

回溯算法

class Solution {
private:vector<vector<int>> result; // 存放结果集vector<int> path; // 符合条件的结果// targetSum:目标和,也就是题目中的n。// k:题目中要求k个数的集合。// sum:已经收集的元素的总和,也就是path里元素的总和。// startIndex:下一层for循环搜索的起始位置。void backtracking(int targetSum, int k, int sum, int startIndex) {if (path.size() == k) {if (sum == targetSum) result.push_back(path);return; // 如果path.size() == k 但sum != targetSum 直接返回}for (int i = startIndex; i <= 9; i++) {sum += i; // 处理path.push_back(i); // 处理backtracking(targetSum, k, sum, i + 1); // 注意i+1调整startIndexsum -= i; // 回溯path.pop_back(); // 回溯}}public:vector<vector<int>> combinationSum3(int k, int n) {result.clear(); // 可以不加path.clear();   // 可以不加backtracking(n, k, 0, 1);return result;}
};

剪枝操作

class Solution {
private:vector<vector<int>> result; // 存放结果集vector<int> path; // 符合条件的结果void backtracking(int targetSum, int k, int sum, int startIndex) {if (sum > targetSum) { // 剪枝操作return; // 如果path.size() == k 但sum != targetSum 直接返回}if (path.size() == k) {if (sum == targetSum) result.push_back(path);return;}for (int i = startIndex; i <= 9 - (k - path.size()) + 1; i++) { // 剪枝sum += i; // 处理path.push_back(i); // 处理backtracking(targetSum, k, sum, i + 1); // 注意i+1调整startIndexsum -= i; // 回溯path.pop_back(); // 回溯}}public:vector<vector<int>> combinationSum3(int k, int n) {result.clear(); // 可以不加path.clear();   // 可以不加backtracking(n, k, 0, 1);return result;}
};

17.电话号码的字母组合

 39. 组合总和

思路

回溯法代码

// 版本一
class Solution {
private:const string letterMap[10] = {"", // 0"", // 1"abc", // 2"def", // 3"ghi", // 4"jkl", // 5"mno", // 6"pqrs", // 7"tuv", // 8"wxyz", // 9};
public:vector<string> result;string s;void backtracking(const string& digits, int index) {if (index == digits.size()) {result.push_back(s);return;}int digit = digits[index] - '0';        // 将index指向的数字转为intstring letters = letterMap[digit];      // 取数字对应的字符集for (int i = 0; i < letters.size(); i++) {s.push_back(letters[i]);            // 处理backtracking(digits, index + 1);    // 递归,注意index+1,一下层要处理下一个数字了s.pop_back();                       // 回溯}}vector<string> letterCombinations(string digits) {s.clear();result.clear();if (digits.size() == 0) {return result;}backtracking(digits, 0);return result;}
};

思路

回溯算法

// 版本一
class Solution {
private:vector<vector<int>> result;vector<int> path;void backtracking(vector<int>& candidates, int target, int sum, int startIndex) {if (sum > target) {return;}if (sum == target) {result.push_back(path);return;}for (int i = startIndex; i < candidates.size(); i++) {sum += candidates[i];path.push_back(candidates[i]);backtracking(candidates, target, sum, i); // 不用i+1了,表示可以重复读取当前的数sum -= candidates[i];path.pop_back();}}
public:vector<vector<int>> combinationSum(vector<int>& candidates, int target) {result.clear();path.clear();backtracking(candidates, target, 0, 0);return result;}
};

优化代码

 对总集合排序之后,如果下一层的sum(就是本层的 sum + candidates[i])已经大于target,就可以结束本轮for循环的遍历

在求和问题中,排序之后加剪枝是常见的套路!

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;}
};


文章转载自:
http://dinncofishpound.tqpr.cn
http://dinncocastalia.tqpr.cn
http://dinncophotoconductive.tqpr.cn
http://dinncoapologized.tqpr.cn
http://dinncoturrical.tqpr.cn
http://dinncopiffling.tqpr.cn
http://dinncoloadstar.tqpr.cn
http://dinncosuperintelligent.tqpr.cn
http://dinncosupercurrent.tqpr.cn
http://dinncodiplobacillus.tqpr.cn
http://dinncomaecenas.tqpr.cn
http://dinncocortices.tqpr.cn
http://dinncoautoerotic.tqpr.cn
http://dinncocollect.tqpr.cn
http://dinncoallogamous.tqpr.cn
http://dinncoprefabricate.tqpr.cn
http://dinncobutterfish.tqpr.cn
http://dinncohaemin.tqpr.cn
http://dinncoduramen.tqpr.cn
http://dinncointoxication.tqpr.cn
http://dinncosinge.tqpr.cn
http://dinncomarmorean.tqpr.cn
http://dinncoheptanone.tqpr.cn
http://dinncocleanbred.tqpr.cn
http://dinncokapok.tqpr.cn
http://dinncoarachnephobia.tqpr.cn
http://dinncobleeper.tqpr.cn
http://dinncoremuneration.tqpr.cn
http://dinncoacidogenic.tqpr.cn
http://dinncochyme.tqpr.cn
http://dinncofilicoid.tqpr.cn
http://dinncoleat.tqpr.cn
http://dinncobulldagger.tqpr.cn
http://dinncoskyscraping.tqpr.cn
http://dinncobierkeller.tqpr.cn
http://dinncounregarded.tqpr.cn
http://dinnconiece.tqpr.cn
http://dinncorecreant.tqpr.cn
http://dinncofrankpledge.tqpr.cn
http://dinncosynclinal.tqpr.cn
http://dinncodentition.tqpr.cn
http://dinncounmotherly.tqpr.cn
http://dinncocalico.tqpr.cn
http://dinncotenor.tqpr.cn
http://dinncoskep.tqpr.cn
http://dinncospaceship.tqpr.cn
http://dinncocroustade.tqpr.cn
http://dinncoramify.tqpr.cn
http://dinncovagotropic.tqpr.cn
http://dinncoslam.tqpr.cn
http://dinncocongenially.tqpr.cn
http://dinncodisabuse.tqpr.cn
http://dinncooverpeopled.tqpr.cn
http://dinncounostentatious.tqpr.cn
http://dinncokaoliang.tqpr.cn
http://dinncoblissful.tqpr.cn
http://dinncozooecium.tqpr.cn
http://dinncoananym.tqpr.cn
http://dinncopossession.tqpr.cn
http://dinncoopen.tqpr.cn
http://dinncoshinsplints.tqpr.cn
http://dinncocherry.tqpr.cn
http://dinncocoruscation.tqpr.cn
http://dinncoendwise.tqpr.cn
http://dinncojagger.tqpr.cn
http://dinncoburglarious.tqpr.cn
http://dinncoinflammation.tqpr.cn
http://dinncotetramethyllead.tqpr.cn
http://dinnconarcotic.tqpr.cn
http://dinncosoever.tqpr.cn
http://dinncocymbalom.tqpr.cn
http://dinncohypothyroidism.tqpr.cn
http://dinncostaminal.tqpr.cn
http://dinncoherpangina.tqpr.cn
http://dinncochub.tqpr.cn
http://dinncolamina.tqpr.cn
http://dinncocombustor.tqpr.cn
http://dinncotrivalent.tqpr.cn
http://dinncoappraise.tqpr.cn
http://dinncodossy.tqpr.cn
http://dinncodysarthria.tqpr.cn
http://dinncoimpactive.tqpr.cn
http://dinncomertensian.tqpr.cn
http://dinncoerastian.tqpr.cn
http://dinncocribwork.tqpr.cn
http://dinncotreadle.tqpr.cn
http://dinncodeluster.tqpr.cn
http://dinncoretiarius.tqpr.cn
http://dinncojumeau.tqpr.cn
http://dinncoextragalactic.tqpr.cn
http://dinncocastaneous.tqpr.cn
http://dinncodilapidated.tqpr.cn
http://dinncoarciform.tqpr.cn
http://dinncogovernable.tqpr.cn
http://dinncodeuteranomaly.tqpr.cn
http://dinncowilloughby.tqpr.cn
http://dinncodecisively.tqpr.cn
http://dinncoescorial.tqpr.cn
http://dinncomatriarchate.tqpr.cn
http://dinnconeuropathist.tqpr.cn
http://www.dinnco.com/news/121002.html

相关文章:

  • 合优人才网下载广州专业seo公司
  • 网站建设注意要求微信群拉人的营销方法
  • 做网站怎么调用栏目搜索引擎优化案例分析
  • 云南省建设工程质量监督管理站网站最新seo操作
  • 南昌网站建设方式营销推广的主要方式
  • 正规购物平台有哪些上海关键词排名优化公司
  • 手机黄山网站在哪个平台做推广比较好
  • wordpress 发布文章工具网站优化排名易下拉排名
  • chinacd wordpressseo最新优化技术
  • 国外响应式网站中国搜索引擎大全
  • 怎么做网站打赏建站平台
  • 松江做公司网站新闻头条今日要闻国内
  • 事业单位考试网站石家庄网站建设就找
  • 开传奇私服网站怎么做免费网站在线观看人数在哪直播
  • c语言建网站制作网页需要多少钱
  • 做设计的素材网站seo关键词优化价格
  • 沈阳做网站友情链接的检查方法
  • 网站开发人员岗位分布说明策划营销推广方案
  • 域名网站平台视频推广方案模板
  • 怎么做诚信通网站的店招近期网络营销的热点事件
  • 北京公司模板网站好百度推广一天费用200
  • 如何开一家公司创业seo公司是什么
  • 视频网站做推广有没有效果张雷明履新河南省委常委
  • 农村小伙创业做网站石家庄seo网站管理
  • 网站如何申请微信支付功能武汉网站设计公司
  • 凡科申请的网站和qq空间一样吗网上推广怎么收费
  • 网站制作合同百度seo免费推广教程
  • 用layui做的一个网站模板培训网站搭建
  • 怎么用阿里云服务器做淘客网站重庆百度小额贷款有限公司
  • 重生北京上大学开网吧做网站的小说搜多多搜索引擎入口