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

惠州网站建设设计如何做网站宣传自己

惠州网站建设设计,如何做网站宣传自己,好的版式设计网站,轻松seo优化排名回溯法 回溯法有“通用解题法”之称#xff0c;用它可以系统地搜索问题的所有解。回溯法是一个既带有系统性又带有跳跃性的搜索算法。 在包含问题的所有解的解空间树中#xff0c;按照深度优先搜索(DFS)#xff09;的策略#xff0c;从根结点出发深度探索解空间树。当探索…回溯法 回溯法有“通用解题法”之称用它可以系统地搜索问题的所有解。回溯法是一个既带有系统性又带有跳跃性的搜索算法。 在包含问题的所有解的解空间树中按照深度优先搜索(DFS)的策略从根结点出发深度探索解空间树。当探索到某一结点时要先判断该结点是否包含问题的解如果包含就从该结点出发继续探索下去如果该结点不包含问题的解则逐层向其祖先结点回溯。其实回溯法就是对隐式图的深度优先搜索算法。 若用回溯法求问题的所有解时要回溯到根且根结点的所有可行的子树都要已被搜索遍才结束。 而若使用回溯法求任一个解时只要搜索到问题的一个解就可以结束。 解题步骤 针对所给问题定义问题的解空间确定易于搜索的解空间结构以深度优先方式搜索解空间并在搜索过程中用剪枝函数避免无效搜索 子集树与排列树 下面的两棵解空间树是回溯法解题时常遇到的两类典型的解空间树子集树与排列树 子集树 当所给问题是从n个元素的集合S中找出S满足某种性质的子集时相应的解空间树称为子集树。例如从n个物品的0-1背包问题所相应的解空间树是一棵子集树这类子集树通常有2n{2^n}2n个叶结点其结点总个数为2n1−1{2 ^{n1}- 1}2n1−1。遍历子集树的算法需O(2n{2^n}2n)计算时间 用回溯法搜索子集树的一般算法可描述为 /*** output(x) 记录或输出得到的可行解x* constraint(t) 当前结点的约束函数* bount(t) 当前结点的限界函数* param t t为当前解空间的层数*/ void backtrack(int t){if(t n)output(x);elsefor (int i 0; i 1; i) {x[t] i;if(constraint(t) bount(t))backtrack(t1);} }排列树 当所给问题是确定n个元素满足某种性质的排列时相应的解空间树称为排列树。例如旅行售货员问题的解空间树是一棵排列树这类排列树通常有n!{n!}n!个叶结点。遍历子集树的算法需O(n!{n!}n!)计算时间 用回溯法搜索排列树的一般算法可描述为 /*** output(x) 记录或输出得到的可行解x* constraint(t) 当前结点的约束函数* bount(t) 当前结点的限界函数* param t t为当前解空间的层数*/ void backtrack(int t){if(t n)output(x);elsefor (int i t; i n; i) {swap(x[t], x[i]);if(constraint(t) bount(t))backtrack(t1);swap(x[t], x[i]);} }Leetcode真题 电话号码的字母组合 解题思路 经典排列树按节点遍历 private String[] voc new String[]{,*, abc, def, ghi, jkl, mno, pqrs, tuv, wxyz}; ListString res new ArrayList(); public ListString letterCombinations(String digits) {if (digits null || digits.length() 0) {return res;}backtrack(digits, 0, new StringBuffer());return res; }public void backtrack(String digits, int index, StringBuffer s) {if (index digits.length()) {res.add(s.toString());return;}int i digits.charAt(index) - 0;for (char c : voc[i].toCharArray()) {s.append(c);backtrack(digits, index 1, s);s.deleteCharAt(s.length() - 1);} }括号生成 解题思路 排列树按节点遍历 回溯结束条件左括号数 右括号数 总数左括号数总数 字符串加入左括号右括号数总数 且 左括号数右括号数字符串加入右括号 ListString res new ArrayList(); public ListString generateParenthesis(int n) {backtrack(n, 0, 0, );return res; }void backtrack(int n, int l, int r, String str) {if (l n r n) {res.add(str);}if (l n) {backtrack(n, l 1, r, str ();}if (r n l r) {backtrack(n, l, r 1, str ));} }N皇后 解题思路 子集树按节点遍历 回溯结束条件所有层数放置完毕每列循环遍历当满足非冲突条件时(列主对角线副对角线不冲突) 放置该行的皇后执行下一级回溯 两点位于同一对角线时行列值相加/相减的值相等 ListListString res new ArrayList(); public ListListString solveNQueens(int n) {if (n 0) {return res;}backtrack(0, n, new int[n]);return res; }/*** output(x) 记录或输出得到的可行解x* constraint(t) 当前结点的约束函数** param t t为当前解空间的层数* param n 总层数* param queens 结果集下标为行号值为列号*/ void backtrack(int t, int n, int[] queens) {if (t n) {output(res, n, queens);return;} else {for (int j 0; j n; j) {if (constraint(t, j, n, queens)) {queens[t] j;backtrack(t 1, n, queens);}}} }/*** 检查是否存在冲突(列主对角线副对角线)* 两点位于同一对角线时行列值相加/相减的值相等*/ boolean constraint(int t, int j, int n, int[] queens) {for (int i 0; i t; i) {if (queens[i] j || i - queens[i] t - j || i queens[i] t j) {return false;}}return true; }void output(ListListString res, int n, int[] queens) {ListString list new ArrayList();for (int i 0; i n; i) {char[] chars new char[n];Arrays.fill(chars, .);chars[queens[i]] Q;list.add(new String(chars));}res.add(list); }参考资料 回溯法的解题步骤与例子解析leetcode深度优先搜索
http://www.hkea.cn/news/14508239/

相关文章:

  • 做的网站没有注册仿一个网站
  • 网站特点互联网百强企业排名
  • 中医院网站素材东营哪里有做网络推广的
  • 外国做的福利小视频在线观看网站5g云网站建设
  • 注册网站需要多久wordpress当前网址函数
  • 旅游资讯网站建设方案足球比赛直播cctv5
  • 建设中学校园网站的来源卖16斤肉赚200元
  • 网站建设江苏asp在网站制作中的作用
  • 腾讯云网站制作教程做网站贵么
  • 济宁网站建设培训学校泉州哪里建设网站
  • 找别人做网站 自己管理友情链接交换平台
  • 东莞网站建设定制网站都有备案号吗
  • 搭建网站要多久网站后台添加查看爬虫的痕迹
  • wordpress网站怎么建网站必须兼容哪些浏览器
  • 网站打开慢怎么回事wordpress百度抓取
  • 网站建设汇报评估北京好的前端培训机构
  • 免费自助建网站软件有没有什么好看的网址
  • 网站开发属于什么科目wordpress二维码手工
  • 集团网站建设运营公司电子商务网站建设与维护李建忠下载
  • 普通网站建设旧域名找新域名的方法
  • 自己做的网站 kindle第三方营销策划公司有哪些
  • 上海哪个网站能应聘做家教的关键词优化师
  • 外贸建站优化推广网络营销的基本方式有哪些
  • 营销网站的优点网站开发最强工具
  • 企业网站项目报价多少合适有什么网站可以接活做设计标志
  • 网站不显示内容吗网站创建流程教程
  • 企业如何实现高端网站建设做装修的有那些网站比较好
  • 自己建设网站要多久织梦贷款网站模板
  • 叫人做国外公司网站让老外做好还是国内人做好学校网站 源码
  • 福清做网站的公司seo运营是做什么的