代码随想录算法训练营第二十五天|216.组合总和III、17.电话号码的字母组合

回溯算法之组合问题:

216.组合总和III

class Solution {
public:vector<vector<int>> result;vector<int> path;void backtracking(int k,int n,int t,int sum){if(path.size()==k){if(sum==n)result.push_back(path);return;}for(int i=t;i<=9;++i){path.push_back(i);backtracking(k,n,i+1,sum+i);path.pop_back();}}vector<vector<int>> combinationSum3(int k, int n) {result.clear();path.clear();backtracking(k,n,1,0);return result;}
};

剪枝操作:即累加的和还没到k个数的时候,就已经大于目标值了,这个时候就不需要再累加下去了,直接返回!另外一个地方就与组合那道题一样的地方进行剪枝!

class Solution {
public:vector<vector<int>> result;vector<int> path;void backtracking(int k,int n,int t,int sum){if(sum>n)return;if(path.size()==k){if(sum==n)result.push_back(path);return;}for(int i=t;i<=9- (k - path.size()) + 1;++i){path.push_back(i);backtracking(k,n,i+1,sum+i);path.pop_back();}}vector<vector<int>> combinationSum3(int k, int n) {result.clear();path.clear();backtracking(k,n,1,0);return result;}
};

17.电话号码的字母组合

思路:其实这道题我感觉回溯倒不是难点,难点在于如何处理从digits中取出每一个字符的映射到对应的组合上去!这里我一直没处理好!

class Solution {
private:
const string letterMap[10]={"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz",
};
public:vector<string> result;string path;void backtracking(const string& digits ,int index){if(index==digits.size()){result.push_back(path);return;}int digit=digits[index]-'0';string letter=letterMap[digit];for(int i=0;i<letter.size();++i){path.push_back(letter[i]);backtracking(digits,index+1);path.pop_back();}}vector<string> letterCombinations(string digits) {result.clear();path.clear();if(digits.size()==0){return result;}backtracking(digits,0);return result;}
};

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

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

相关文章

(力扣)1314.矩阵区域和

给你一个 m x n 的矩阵 mat 和一个整数 k &#xff0c;请你返回一个矩阵 answer &#xff0c;其中每个 answer[i][j] 是所有满足下述条件的元素 mat[r][c] 的和&#xff1a; i - k < r < i k, j - k < c < j k 且(r, c) 在矩阵内。 示例 1&#xff1a; 输入&a…

【Godot4.2】文件系统自定义控件 - FileSystemTree

FileSystemTree B站【Godot4.2】文件系统自定义节点 - FileSystemTree 概述 在Godot设计编辑器插件或应用程序时&#xff0c;可能需要涉及文件系统的显示&#xff0c;比如文件夹或文件的树形列表。 我们可以用Godot的Tree控件快速书写相应的功能&#xff0c;但是为了复用到…

深入理解拓扑排序:从基础到应用

深入理解拓扑排序&#xff1a;从基础到应用 I. 引言 A. 拓扑排序的定义与背景 拓扑排序是图论中一项重要的算法&#xff0c;主要用于处理有向图中节点之间的依赖关系。这个概念源于日常生活中的任务排序需求&#xff0c;例如在工程项目中&#xff0c;不同任务之间存在先后顺…

Wireshark不显示Thrift协议

使用Wireshark对thrift协议进行抓包&#xff0c;但是只显示了传输层的tcp协议&#xff1a; "右键" -> "Decode As" 选择thrift的tcp端口 将“当前”修改为Thrift&#xff0c;然后点击“确定” 设置后&#xff0c;可以发现Wireshark里面显示的协议从Tcp变…

H12-821_74

74.在某路由器上查看LSP&#xff0c;看到如下结果&#xff1a; A.发送目标地址为3.3.3.3的数据包时&#xff0c;打上标签1026&#xff0c;然后发送。 B.发送目标地址为4.4.4.4的数据包时&#xff0c;不打标签直接发送。 C.当路由器收到标签为1024的数据包&#xff0c;将把标签…

低代码平台项目化私有化部署问题总结

现阶段&#xff0c;低代码平台基本上是两个方向&#xff0c;一个是在原有的SaaS平台的基础上&#xff0c;抽象出来一个aPaaS&#xff08;比如&#xff0c;销售易、北森&#xff09;&#xff0c;另一个方向是纯低代码平台&#xff0c;没有业务&#xff08;比如&#xff0c;奥哲、…

gorm day2

gorm day2 连接到数据库创建记录 连接到数据库 gorm官方支持的数据库类型有&#xff1a;MySQL&#xff0c;postgresql&#xff0c;Sqlite&#xff0c;sql server Mysql import ("gorm.io/driver/mysql""gorm.io/gorm" )func main() {// 参考 https://g…

波纹扩散效果

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>波纹扩散</title><style>body {disp…

『运维备忘录』之 Kubernetes(K8S) 常用命令速查

一、简介 kubernetes&#xff0c;简称K8s&#xff0c;是用8代替名字中间的8个字符“ubernete”而成的缩写&#xff0c;是一个开源的&#xff0c;用于管理云平台中多个主机上的容器化的应用。kubernetes是基于容器技术的分布式架构解决方案&#xff0c;具有完备的集群管理能力&a…

HTTP状态码知道哪些

100 Continue 继续&#xff0c;一般在发送post请求时&#xff0c;已发送了http header之后服务端将返回此信息&#xff0c;表示确认&#xff0c;之后发送具体参数信息 200 OK 正常返回信息 201 Created 请求成功并且服务器创建了新的资源 202 Accepted 服务器已接受请求&#x…

51单片机基础(C语言):定时器时钟

1.使用定时器 1 和LCD1602设计一个简易数字时钟。 main.c #include <REGX52.H> #include "Delay.h" #include "LCD1602.h" #include "Timer0.h"unsigned char Sec55,Min59,Hour23;void main() {LCD_Init();Timer0Init();LCD_ShowString(…

mysql入门到精通005-基础篇-约束

1、概述 1.1 概念 约束是作用于表中字段上的规则&#xff0c;用于限制储存在表中的数据。 1.2 目的 保证数据库中数据的正确性、有效性和完整性。 1.3 常见的约束分类 一旦谈到外键&#xff0c;则至少涉及2张表约束是作用于表中字段上的&#xff0c;可以在创建表/修改表的…

CTFshow web(命令执行29-36)

?ceval($_GET[shy]);&shypassthru(cat flag.php); #逃逸过滤 ?cinclude%09$_GET[shy]?>&shyphp://filter/readconvert.base64-encode/resourceflag.php #文件包含 ?cinclude%0a$_GET[cmd]?>&cmdphp://filter/readconvert.base64-encode/…

2. Maven 继承与聚合

目录 2. 2.1 继承 2.2继承关系 2.2.1 思路分析 2.2.2 实现 2.1.2 版本锁定 2.1.2.1 场景 2.1.2.2 介绍 2.1.2.3 实现 2.1.2.4 属性配置 2.2 聚合 2.2.1 介绍 2.2.2 实现 2.3 继承与聚合对比 maven1&#xff1a;分模块设计开发 2. 在项目分模块开发之后啊&#x…

Lua迭代器以及各种源函数的实现

范型for 范型for的格式如下所示&#xff1a; for <var-list> in <exp-list> do<body> end var-list指变量名列表&#xff0c;可以为多个&#xff0c;exp-list指表达式列表&#xff0c;通常情况下只有一个值。可以更具体地写为另一种形式&#xff1a; fo…

TCP和UDP相关问题(重点)(3)——3.HTTP基于TCP还是UDP?

HTTP/3.0 之前是基于 TCP 协议的&#xff0c;而 HTTP/3.0 将弃用 TCP&#xff0c;改用 基于 UDP 的 QUIC 协议 。具体见HTTP相关问题-CSDN博客

Gazebo的初始启动问题

在机器人开发之中一般初始启动会输入以下语句&#xff1a; ros2 launch gazebo_ros gazebo.launch.py 通常都会报错&#xff0c;原因是路径并未添加&#xff0c;输入下列语句到.bashrc即可 source /usr/share/gazebo/setup.bash

freeRTOS总结(十四)任务通知

1、任务通知 任务通知&#xff1a; 用来通知任务的&#xff0c;任务控制块中的结构体成员变量ulNotifiedValue就是这个通知值 使用队列、信号量、事件标志组时都需另外创建一个结构体&#xff0c;通过中间的结构体进行间接通信&#xff01; 使用任务通知时&#xff0c;任务结…

Flink流式数据倾斜

1. 流式数据倾斜 流式处理的数据倾斜和 Spark 的离线或者微批处理都是某一个 SubTask 数据过多这种数据不均匀导致的&#xff0c;但是因为流式处理的特性其中又有些许不同 2. 如何解决 2.1 窗口有界流倾斜 窗口操作类似Spark的微批处理&#xff0c;直接两阶段聚合的方式来解决…

leetcode - 408. Valid Word Abbreviation

Description A string can be abbreviated by replacing any number of non-adjacent, non-empty substrings with their lengths. The lengths should not have leading zeros. For example, a string such as “substitution” could be abbreviated as (but not limited t…