DFS(四)39. 组合总和 1079. 活字印刷

news2025/1/18 6:50:57

39. 组合总和

给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。

candidates 中的 同一个 数字可以 无限制重复被选取 。如果至少一个数字的被选数量不同,则两种组合是不同的。

对于给定的输入,保证和为 target 的不同组合数少于 150 个。

示例 1:

输入:candidates = [2,3,6,7], target = 7
输出:[[2,2,3],[7]]
解释:
2 和 3 可以形成一组候选,2 + 2 + 3 = 7 。注意 2 可以使用多次。
7 也是一个候选, 7 = 7 。
仅有这两种组合。

示例 2:

输入: candidates = [2,3,5], target = 8
输出: [[2,2,2,2],[2,3,3],[3,5]]

模板:

vector<int> path;
    vector<vector<int>> result;
    void backTracking(......) {
        if (......) {
            ......
            return;
        }
        for (int i = 0; i < size; ++i) {
            path.emplace_back(......);
            backTracking(......);
            path.pop_back();
        }
    }

这里多传入一个参数begin,目的是去重。如果不加入这个begin,就会出现重复和temp。

class Solution {
public:
    vector<vector<int>> res;
    vector<int> temp;
    void dfs(vector<int>& num, int target, int begin, int add)
    {
        if(add==target)
        {
            res.push_back(temp);
            return;
        }
        else if(add>target)
            return;
        for(int i = begin; i < num.size(); i++)
        {
            add += num[i];
            temp.push_back(num[i]);
            dfs(num, target, i, add);
            add-=num[i];
            temp.pop_back();
        }
    }
    vector<vector<int>> combinationSum(vector<int>& candidates, int target) {
        if(candidates.empty())return res;
        dfs(candidates, target, 0, 0);
        return res;
    }
};

 1079. 活字印刷

多置入一个判断字母是否使用的标志位

你有一套活字字模 tiles,其中每个字模上都刻有一个字母 tiles[i]。返回你可以印出的非空字母序列的数目。

 
class Solution {
public:
    string temp;
    set<string> res;
    void dfs(string tiles, vector<int> book)
    {
        if(!temp.empty())
        {
            res.insert(temp);
        }
        for(int i = 0; i < tiles.size(); i++)
        {
            if(book[i] == 1)
                continue;
            temp+=tiles[i];
            book[i] = 1;
            dfs(tiles, book);
            book[i] = 0;
            temp.pop_back();
        }
    }
    int numTilePossibilities(string tiles) {
        if(tiles.empty())return 0;
        vector<int> book(tiles.size(), 0);
        dfs(tiles, book);
        return res.size();
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/178115.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

flowable定时任务和表单

流程定义定时激活 &#xff1a; act_re_procdef 的 suspension_status ClassPathResource classPathResource new ClassPathResource("hehe/HistoryDemo01.bpmn20.xml");repositoryService.createDeployment().addInputStream(classPathResource.getFilename(),clas…

【HBase入门】3. HBase数据模型

简介 在HBASE中&#xff0c;数据存储在具有行和列的表中。这是看起来关系数据库(RDBMS)一样&#xff0c;但将HBASE表看成是多个维度的Map结构更容易理解。 { “zzzzz” : “woot”, “xyz” : “hello”, “aaaab” : “world”, “1” : “x”, “aaaaa” : “y” } 术语 表…

MCAL系列介绍05-ICU

本文框架1. 前言2. 基本概念3. ICU采集过程3.1 获取周期占空比3.2 获取边沿数量3.3 获取时间戳4. Autosar系列文章快速链接1. 前言 ICU驱动器是使用Input Capture Uint模块&#xff08;ICU&#xff09;解调PWM信号、计数脉冲、测量频率和占空比、生成简单中断以及唤醒中断的模…

ROS学习寄录之知识学习

1 ROS核心概念 1.1 节点&#xff08;Node&#xff09; &#xff08;1&#xff09;执行具体任务的进程、独立运行的可执行文件 &#xff08;2&#xff09;不同节点可以使用不同的语言&#xff0c;可分布式运行在不同的主机 &#xff08;3&#xff09;节点在系统中的名称必须…

HTML总结

web开发是创建Web页面或App等前端界面呈现给用户的过程。web开发开发是从网页制作演变而来&#xff0c;早期网站主要内容都是静态&#xff0c;用户使用网站的行为也以浏览为主。随着互联网技术的发展&#xff0c;各种终端设备应用程序与用户沟通交互的界面&#xff0c;都是由We…

Java基础 Stream流方法引用异常文件

Stream流 引例 需求&#xff1a;按照下面要求完成集合的创建和遍历 创建一个集合&#xff0c;存储多个字符串元素 1. 把所有以“曹”开头的元素存储到新集合中 2. 把曹开头&#xff0c;长度为3的元素存储到新集合中 List<String> list List.of("曹操", "…

关于2倍图的理解

在电脑端1个css像素1个物理像素 所以一个长宽都是100px的照片&#xff0c;需要100✖100px的物理像素 而在移动端存在多倍图的关系&#xff0c;假如是2倍图的关系 即&#xff1a;1个css像素需要2个物理发光点 假如现在有一个长宽都是100px像素的照片 放在手机上也是长宽也是100…

TCP/IP IP地址概念与应用

作者简介&#xff1a;一名在校云计算网络运维学生、每天分享网络运维的学习经验、和学习笔记。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 目录 前言 一.什么是IP地址 二.IP地址的组成 三.IP地址分类 A类IP地址 …

雅睿生物在创业板IPO终止:安信证券为保荐人,曾计划募资7.5亿元

近日&#xff0c;深圳证券交易所创业板披露的信息显示&#xff0c;苏州雅睿生物技术股份有限公司&#xff08;下称“雅睿生物”&#xff09;提交了关于撤回首次公开发行股票并在创业板上市申请文件的申请&#xff0c;保荐人提交了撤回保荐的申请。 据贝多财经了解&#xff0c;雅…

Heatmap关键点检测算法

** Heatmap 方法汇总 高斯热图与坐标回归方法探讨 L1与 L2 Loss的对比分析 关键点之热力图Heatmap与坐标FC回归 Heatmap-based和Regression-based 一般来说&#xff0c;我们可以把姿态估计任务分成两个流派&#xff1a;Heatmap-based和Regression-based。 其主要区别在于监…

GROMACS 教程--水中的溶菌酶

GROMACS 教程–水中的溶菌酶 中文教程&#xff1a;http://jerkwin.github.io/ 英文教程&#xff1a;http://www.mdtutorials.com 此示例将指导新用户完成模拟系统的设置过程&#xff0c;该模拟系统在一盒水和离子中包含蛋白质&#xff08;溶菌酶&#xff09;。每个步骤都将包含…

学习3dmax多边形建模挤出操作

新建一个长方体&#xff0c;右键&#xff0c;转换为可编辑多边形&#xff1b; 右键以后&#xff0c;这个Convert To菜单&#xff0c;有时有有时没有&#xff0c;我还没弄清&#xff0c; 操作层级选中如下&#xff0c; 选中挤出命令&#xff0c;Extrude&#xff0c; 挤了一下&a…

元宇宙3D设计系统【构思与展望】

Metaverse 似乎是一个迷人的未来主义命题&#xff0c;“有一天”我们将拥有数十亿人愿意“生活在其中”的虚拟世界。 显然&#xff0c;我们还没有看到真正的“元宇宙”产品&#xff0c;3-5 年内也不太可能看到这样的产品。 那么&#xff0c;是什么阻碍了元宇宙在短期内成为现实…

ccflow 代码分析

ccflow 代码分析目录概述需求&#xff1a;设计思路实现思路分析1.参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,make a better result,wait for change,challenge Survive. happ…

线段树的原理和应用

目录 一、前言 二、线段树的概念 1、区间最值问题RMQ (Range Minimum/Maximum Query) &#xff08;1&#xff09;暴力法 &#xff08;2&#xff09;高效的办法&#xff1a;线段树 &#xff08;3&#xff09;把数列放在二叉树上 &#xff08;4&#xff09;查询最小值的复…

反向放大电路并联电容与积分电路并联电阻的区别?

运放反相比例放大电路中反馈电阻两端经常并联一个电容&#xff0c;而运放积分电路的反馈电容上常常并联一个电阻&#xff0c;两者电路结构相似&#xff0c;如下所示&#xff08;隐去阻容值&#xff09;&#xff0c;二者有何区别呢&#xff1f;电阻、电容分别又起到什么作用&…

djangorestframework全解

这里写目录标题drf安装与使用ApiView继承自原生View的基类基本使用源码分析drf的Request对象响应模块&#xff08;一般不用管&#xff09;内置渲染器局部使用全局使用解析器&#xff08;一般不用管&#xff09;全局使用解析器局部使用解析器同时使用多个解析器&#xff08;默认…

雅克比行列式补充和曲面的参数方程求导表示法向量

接上篇的雅克比行列式部分。其实对于任何变量x,y, dxdy描述的是一个抽象的“面积”。比如&#xff0c;如果x是力F&#xff0c;y是时间t&#xff0c;那么“面积”Ft其实就是做功。所以我们可以认识到&#xff0c;对于dxdy和dudv之间&#xff0c;如果自变量u&#xff0c;v的改变量…

【网络安全】ip地址、公网、私网

一、IP地址 ip地址相当于收发快递时的收货地址和发货地址 IPV4的地址&#xff1a;192.168.0.1 11000000.10101000.00000000.00000001 windows使用>ipconfig&#xff1b;linux使用ifconfig 可以看到IPV4地址/inet旁边的就是IP地址 IP地址的分类 IP地址有32位&#xff0…

React事件和原生事件的执行顺序

React在内部对事件做了统一的处理&#xff0c;合成事件是一个比较大的概念 为什么要有合成事件 在传统的事件里&#xff0c;不同的浏览器需要兼容不同的写法&#xff0c;在合成事件中React提供统一的事件对象&#xff0c;抹平了浏览器的兼容性差异React通过顶层监听的形式&am…