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

松江大学城网站建设重庆艺叮点网络科技有限公司

松江大学城网站建设,重庆艺叮点网络科技有限公司,深圳网站建设哪家最好,站长工具国产20231.回溯 回溯可以视为递归的拓展,有着明确的解题模板。 很大的不同之处是有一个撤销处理结果的操作,但是大框架就是遍历 N 叉树。 回溯主要解决暴力枚举都解决不了的问题。 回溯模板: void backtracking(参数) {if (终止条件) {存放结果;…

1.回溯

回溯可以视为递归的拓展,有着明确的解题模板。

很大的不同之处是有一个撤销处理结果的操作,但是大框架就是遍历 N 叉树。

回溯主要解决暴力枚举都解决不了的问题。

回溯模板:

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

回溯完整代码示例:返回 1 到 n 中所有可能的 k 个数的组合

public List<List<Integer>> combine(int n, int k) {List<List<Integer>> resultList = new ArrayList<>();if (k <= 0 || n < k) {return resultList;}Deque<Integer> path = new ArrayDeque<>();dfs(n, k, 1, path, res);return res;
}public void dfs(int n, int k, int startIndex, Deque<Integer> path, List<List<Integer>> resultList) {if (path.size() == k) {resultList.add(new ArrayList<>(path));return;}for (int i = startIndex; i <= n; i++) {path.addLast(i);dfs(n, k, i + 1, path, resultList);path.removeLast();}
}

2.回溯题目:输出二叉树的所有路径

原题:力扣257.

class BinaryTreePaths {List<String> ans = new ArrayList<>();public List<String> binaryTreePaths(TreeNode root) {dfs(root, new ArrayList<>());return ans;}private void dfs(TreeNode root, List<Integer> temp) {if (root == null) {return;}temp.add(root.val);if (root.left == null && root.right == null) {ans.add(getPathString(temp));}dfs(root.left, temp);dfs(root.right, temp);temp.remove(temp.size() - 1);}private String getPathString(List<Integer> temp) {StringBuilder sb = new StringBuilder();sb.append(temp.get(0));for (int i = 1; i < temp.size(); i++) {sb.append("->").append(temp.get(i));}return sb.toString();}
}

3.回溯题目:路径总和问题

原题:力扣113.

class PathSum {List<List<Integer>> res = new ArrayList<>();public List<List<Integer>> pathSum(TreeNode root, int targetSum) {LinkedList<Integer> path = new LinkedList<>();dfs(root, targetSum, path);return res;}public void dfs(TreeNode root, int targetSum, LinkedList<Integer> path) {if (root == null) {return;}targetSum -= root.val;path.add(root.val);if (targetSum == 0 && root.left == null && root.right == null) {res.add(new LinkedList(path));}dfs(root.left, targetSum, path);dfs(root.right, targetSum, path);path.removeLast();}
}

如果对您有帮助,请点赞关注支持我,谢谢! ❤
如有错误或者不足之处,敬请指正! ❤
个人主页:星不易 ❤
算法通关村专栏:不易|算法通关村 ❤

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

相关文章:

  • 低价自适应网站建设标书制作教程视频网站
  • 自搭建网站seo赚钱暴利
  • 长沙市网站建设公司建设工程合同约定仲裁违反专属管辖吗
  • asp.net 网站管理工具 安全莱芜做网站建设的公司
  • 荆门做网站公众号的公司河南和城乡建设厅网站
  • 郑州营销型网站建设哪家好vi设计公司排行
  • 做网站标签栏的图片大小网易暴雪最新消息
  • 手机网站按那个尺寸做在线国内免费crm
  • 网站推广途径方法沈阳微信网站开发
  • 如何查看一个网站是不是用h5做的温州网站建
  • 服务器可以放几个网站wordpress 加载太多js
  • 建立网站专业公司成品网站源码在线
  • 建设银行网站 查余额查询久久建筑网 围栏工程专项施工方案
  • 自己做的网站能备案吗成都网站建设 平易云
  • 龙岗网站设计公司网站建设与制作总结
  • 如何做网站首页在网站用什么做页面布局
  • 接入网站备案要多久网站开发部门叫什么
  • 温州做网站软件自己做流媒体网站难
  • 网站建设开发综合实训报告5万左右的新能源电动汽车
  • 网站开发实战asp制作视频河南物流最新情况
  • 注册个免费网站外链购买平台
  • 全国大型免费网站建设自适应网站建设公司
  • 重庆亮哥做网站photoshop下载免费版
  • 电子商务网站建设新闻江苏城乡建设部网站
  • 标题优化方法seo网站推广推荐
  • 企业手机网站建设教程WordPress快捷登录如何关闭
  • 宁波公司做企业网站校园网站建设的请示
  • 网站全屏弹出窗口分切机网站建设
  • python网站开发框架晋中企业网站建设
  • 湖州童装网站自助做网站