首页 > 编程语言 >回溯算法模板 & 78子集代码

回溯算法模板 & 78子集代码

时间:2024-02-22 16:36:44浏览次数:41  
标签:return nums int 模板 回溯 path 节点 backtracking 78

  void backtracking(参数) {
    if (终止条件) {
        存放结果;
        return;
    }

    for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) {
        处理节点;
        backtracking(路径,选择列表); // 递归
        回溯,撤销处理结果
    }
}
class Solution {     List<List<Integer>> result = new ArrayList<>();// 存放符合条件结果的集合     LinkedList<Integer> path = new LinkedList<>();// 用来存放符合条件结果     public List<List<Integer>> subsets(int[] nums) {         subsetsHelper(nums, 0);         return result;     }
    private void subsetsHelper(int[] nums, int startIndex){         result.add(new ArrayList<>(path));//「遍历这个树的时候,把所有节点都记录下来,就是要求的子集集合」。         if (startIndex >= nums.length){ //终止条件可不加             return;         }         for (int i = startIndex; i < nums.length; i++){             path.add(nums[i]);             subsetsHelper(nums, i + 1);             path.removeLast();         }     } }



void backtracking(参数) { if (终止条件) { 存放结果; return; } for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) { 处理节点; backtracking(路径,选择列表); // 递归 回溯,撤销处理结果 } } 作者:代码随想录 链接:https://leetcode.cn/problems/subsets/solutions/2566767/dai-ma-sui-xiang-lu-leetcode78zi-ji-by-c-yujc/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

标签:return,nums,int,模板,回溯,path,节点,backtracking,78
From: https://www.cnblogs.com/JavaYuYin/p/18027610

相关文章

  • 网络最大流(模板)
    不加弧优化#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;constintN=10005;intn,m,s,t;structedge{intv,nxt,val;}e[N*2];inthead[N],cnt=1;intdis[N];intmaxflow;voidadd(intu,intv,intval){ e[++cnt].val=va......
  • 清新简蓝响应式网站模板Traveler
    清新简蓝响应式网站模板Traveler适合做个人博客自媒体类站点,可以做技术类,分享心情类文章博客,界面简洁,实用,利seo排名优化。首页采用无限加载更多文章,效果很酷。traveler模板主题在更大的程度上照顾每个人的需求,菜单、首页每个栏目、侧栏小工具都可以自主开启关闭,只需在后......
  • 模板匹配里的一些数学原理
    模板匹配里的一些数学原理我们知道,在openCV里,模板匹配中匹配度的计算公式有三类。SQDIFF、CCORR、CCOEFF。下面我们来简单介绍一下这三类计算方法,并比较其不同之处。openCV里的模板匹配SQDIFFSQDIFF全称SumofSquaredDifference(SSD),即差的平方和。其离散形式为:\[E(\v......
  • vue3项目模板:新建一个vite+vue3项目,并做基础化建设
    原文地址:https://blog.csdn.net/weixin_43239880/article/details/130355138新建一个vite+vue3项目,并做基础化建设1.使用npmcreatvite@latest新建一个vue3项目2.生成git仓库3.将prettier的规则加入到eslint中(可选操作,建议有)4.添加commitLint(可选操作,建议有)5.加入UI组件库,以ele......
  • python 爬虫模板
    前言在我们写爬虫的时候,一般想要的数据都在详情页里面,一般代码进入详情页参数,需要首页里面寻找,所以爬这样的网站,需要定义一个模板我的模板如下: importrandomimporttimeimportrequestsfromauctionimportlogtoolfromauction.BaseCrawlerimportBaseCrawlercla......
  • 线段树—模板
    线段树常见操作build建树update更新query查询pushup向上回溯pushdown向下延迟更新(延迟标记)建线段树://预编译命令,做符号代换#definelson(gjd<<1)#definerson(gjd<<1|1)//gjd表示当前结点,[l,r]表示区间范围voidbuild(intgjd,intl,intr){tree[gjd]......
  • 请求接口生成导入模板
    这里介绍一种通过接口去生成导入数据Excel模板1、controller 2、serviceImpl@OverridepublicvoiddownloadOrderTemplate(HttpServletResponseresponse){List<WorkOrderVoImportDto>orderVoImports=newArrayList<>();try{List......
  • C++ 模板的笔记2
    C++模板的笔记2关于可变参函数模板借鉴了一部分笔记,感谢大佬类模板中的嵌套类模板可以嵌套其他类模板,就像普通类可以嵌套其他普通类一样。嵌套的类模板可以访问外部类模板的成员,包括私有成员。示例:#include<iostream>usingnamespacestd;template<typenameT>classO......
  • day30 回溯算法总结
     我的感悟:之前一直没看进去,理论篇。今天看了,收获很大。 我的笔记: 资料:卡尔回溯总结卡尔理论视频......
  • 线段树模板
    开局宏定义:#include<bits/stdc++.h>#defineintlonglong#definelson(now<<1)//现结点的左孩子#definerson(now<<1|1)//右孩子usingnamespacestd;结构体定义:structNode{intl,r;//表示左右区间intmax,sum;//其他数据域}tree[N<<2]//=N*......