算法打卡 Day28(回溯算法)-组合总数 + 组合总数 Ⅱ+ 电话号码的字母组合

news2024/9/22 17:28:41

文章目录

  • Leetcode 17-电话号码的字母组合
    • 题目描述
    • 解题思路
  • Leetcode 39-组合总数
    • 题目描述
    • 解题思路
  • Leetcode 216-组合总数 Ⅲ
    • 题目描述
    • 解题思路

Leetcode 17-电话号码的字母组合

题目描述

https://leetcode.cn/problems/letter-combinations-of-a-phone-number/description/

在这里插入图片描述

解题思路

class Solution {
public:
    vector<string> res;
    string path = "";
    vector<string> list = {"abc", "def","ghi","jkl","mno","pqrs","tuv","wxyz"};
    void backTracking(string s, int startIndex){
        if (startIndex == s.size()){
            res.push_back(path);
            return;
        }
        int digits = s[startIndex]-'0'-2;
        for (int i = 0; i < list[digits].size();i++){
            path += list[digits][i];
            backTracking(s, startIndex+1);
            path.pop_back();//注意字符串移除的方式,不能使用-=
        }
    }
    vector<string> letterCombinations(string digits) {
        if (digits.size()==0) return {};
        backTracking(digits,0);
        return res;
    }
};

Leetcode 39-组合总数

题目描述

https://leetcode.cn/problems/combination-sum/description/

在这里插入图片描述

解题思路

class Solution {
public:
    vector<vector<int>> res;
    vector<int> path;
    void backTracking(vector<int>& candidates, int target, int startIndex, int sum){
        if (sum == target){
            res.push_back(path);
            return;
        }
        if (sum >target) return;
        for (int i = startIndex; i < candidates.size(); i++){
            path.push_back(candidates[i]);sum+=candidates[i];
            backTracking(candidates, target, i, sum);
            path.pop_back();sum-=candidates[i];
        }
    }
    vector<vector<int>> combinationSum(vector<int>& candidates, int target) {
        backTracking(candidates,target,0,0);
        return res;
    }
};

Leetcode 216-组合总数 Ⅲ

题目描述

https://leetcode.cn/problems/combination-sum-iii/description/

在这里插入图片描述

解题思路

class Solution {
public:
    vector<vector<int>> res;
    vector<int> path;
    void backTracking(int k, int n, int startIndex, int sum){
        if (sum > n) return;//剪枝操作1
        if (path.size() == k){
            if (sum == n){
                res.push_back(path);
            }
            return;
        }
        for (int i = startIndex; 9-i+1+path.size() >= k; i++){//剪枝操作2.保证剩余的元素个数能满足使组合个数符合k的要求
            path.push_back(i); sum+=i;
            backTracking(k, n, i+1, sum);
            path.pop_back();sum-=i;
        }
    }
    vector<vector<int>> combinationSum3(int k, int n) {
        backTracking(k,n, 1, 0);
        return res;
    }
};

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

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

相关文章

Flink问题记录

尚硅谷Flink1.17问题记录 上手pom依赖循环递归WordCountStreamDemo中readTextFile是deprecated&#xff08;强烈反对的&#xff09; 上手 pom依赖循环递归 pom依赖中&#xff1a; <dependency><groupId>org.apache.flink</groupId><artifactId>flink…

J.U.C Review - 线程池原理/源码解析

文章目录 为什么要使用线程池ThreadPoolExecutor构造方法解析常见的阻塞队列实现及其特性阻塞队列在实际应用中的适用场景分析自定义ThreadFactory和RejectedExecutionHandler实际使用中的示例与代码片段 线程池的状态线程池的任务处理流程线程复用的实现四种常见的线程池newCa…

uniapp 自定义微信小程序 tabBar 导航栏

背景 做了一个校园招聘类小程序&#xff0c;使用 uniapp vue3 uview-plus pinia 构建&#xff0c;这个小程序要实现多角色登录&#xff0c;根据权限动态切换 tab 栏文字、图标。 使用pages.json中配置tabBar无法根据角色动态配置 tabBar&#xff0c;因此自定义tabBar&…

达梦数据库的系统视图v$ifun

达梦数据库的系统视图v$ifun 达梦数据库&#xff08;DM Database&#xff09;中V$IFUN 视图是用于检测函&#xff08;Function&#xff09;信息的。 在 Oracle 数据库中&#xff0c;类似的系统视图被称为动态性能视图&#xff0c;但在达梦数据库中并没有与 Oracle 一一对应的…

QT(1)-.pro 文件 转成.vcxproj 工程

1.qtcreator创建的文件转换成vs2019可以打开的。 1.QT webenginewidgets unknown modules webenginewidgets 要用 MSVC2017 &#xff0c;用minGW 32构建

使用Django身份验证系统

【图书介绍】《Django 5企业级Web应用开发实战&#xff08;视频教学版&#xff09;》_django 5企业级web应用开发实战(视频教学版)-CSDN博客 《Django 5企业级Web应用开发实战&#xff08;视频教学版&#xff09;》(王金柱)【摘要 书评 试读】- 京东图书 (jd.com) Django 5框…

windows中Selenium安装最新版Chrome WebDriver

windows中Selenium安装最新版Chrome WebDriver 需求&#xff1a;需要使用 selenium 对某个网页进行截图 文章目录 windows中Selenium安装最新版Chrome WebDriver一、查看Chrome版本二、找到对应的chromedriver版本三 安装3.1 确定google安装路径3.2 将下载的google driver 解压…

解决bug: RuntimeError: Address already in use,一个linux下pytorch多卡训练tcp端口占用的bug

时间&#xff1a;2024.9.3 1&#xff09;bug&#xff1a; self._store TCPStore( # type: ignore[call-arg] RuntimeError: Address already in use2&#xff09;原因分析 linux下pytorch多卡训练深度学习模型&#xff0c;训练中途暂停训练&#xff0c;但仍有进程占用某个端…

字典树Trie(专项复习)

一.P8306 【模板】字典树 题目思路:字典树的板子题,熟练写出insert函数(建树),以及query函数(查询)即可. 代码实现: #include<bits/stdc.h> using namespace std; typedef unsigned long long ull; typedef long long ll; #define N 3000005 #define P 131 ll f1[N]; s…

华为云征文|Flexus云服务X实例安装ODBC驱动,在ODBC中建立MySQL数据库连接,通过QT连接云数据库

引出 4核12G-100G-3M规格的Flexus X实例使用测评第2弹&#xff1a;Flexus云服务X实例安装ODBC驱动&#xff0c;在ODBC中建立MySQL数据库连接&#xff0c;通过QT连接云数据库 什么是Flexus云服务器X实例 官方解释&#xff1a; Flexus云服务器X实例是新一代面向中小企业和开发…

第140天:内网安全-横向移动局域网ARP欺骗DNS劫持钓鱼中间人单双向

目录 案例一&#xff1a;局域网&工作组-ARP原理-断网限制-单向 案例二&#xff1a;局域网&工作组-ARP欺骗-劫持数据-双向 案例三&#xff1a;局域网&工作组-DNS 劫持-钓鱼渗透-双向 案例一&#xff1a;局域网&工作组-ARP原理-断网限制-单向 原理&#xff1…

pytorch利用简单CNN实现葡萄病虫害图片识别

1 前言 之前我开发了一个葡萄病虫害的可视化系统&#xff0c;最近就想给这个系统增加2个功能&#xff0c;一个是对接一个AI助手&#xff0c;可以进行葡萄病虫害的咨询&#xff0c;直接对接千问大模型&#xff0c;这个在之前的博文里已经介绍过对接方法了&#xff0c;第二个是做…

ChatGPT与R语言融合技术在生态环境数据统计分析、绘图、模型中的实践与进阶应用

自2022年GPT&#xff08;Generative Pre-trained Transformer&#xff09;大语言模型的发布以来&#xff0c;它以其卓越的自然语言处理能力和广泛的应用潜力&#xff0c;在学术界和工业界掀起了一场革命。在短短一年多的时间里&#xff0c;GPT已经在多个领域展现出其独特的价值…

【JavaWeb】JDBCDruidTomcat入门使用

本章使用技术版本&#xff1a; Tomcatv10.1.25 关于javaweb相关的其他技术&#xff0c;比如tomcat和maven&#xff0c;在我的主页记录了笔记&#xff0c;ajax我用的是本地笔记以后再考虑上传&#xff0c;前端三板斧我用的菜鸟教程文档 JDBC 初识 JDBC概念 JDBC 就是使用Jav…

MatLab基础学习01

MatLab基础学习01 1.基础入门2.MatLab的数据类型2.1数字2.2字符串2.3矩阵2.4.元胞数组2.5结构体 3.MatLab的矩阵的操作3.1矩阵定义与构造3.2矩阵的下标取值 4.MatLab的逻辑流程4. For循环结构4.2 While循环&#xff0c;当条件成立的时候进行循环4.3 IF end 1.基础入门 matlba必…

1.3 SQL注入之MYSQL系统库

一.系统库释义 提供了访问数据库元数据的方式 元数据是关于数据库的数据&#xff0c;如数据库名和表名&#xff0c;列的数据类型或访问权限。 1.information_schema 库&#xff1a;是信息数据库&#xff0c;其中保存着关于MySQL服务器所维护的所有其他数据库的信息&#xff1…

公园智能厕所引导大屏,清楚显示厕位有无人状态

在科技飞速发展的今天&#xff0c;公园的设施也在不断与时俱进。其中&#xff0c;公园智能厕所引导大屏的出现&#xff0c;为游客带来了全新的如厕体验。 走进公园的智能厕所区域&#xff0c;首先映入眼帘的便是那醒目的引导大屏。屏幕上清晰地显示着各个厕位的有无人状态&…

如何使用Cheerio与jsdom解析复杂的HTML结构进行数据提取

背景介绍 在现代网页开发中&#xff0c;HTML结构往往非常复杂&#xff0c;包含大量嵌套的标签和动态内容。这给爬虫技术带来了不小的挑战&#xff0c;尤其是在需要精确提取特定数据的场景下。传统的解析库可能无法有效处理这些复杂的结构&#xff0c;而JavaScript环境下的Chee…

机器学习(五) -- 监督学习(8) --神经网络2

机器学习系列文章目录及序言深度学习系列文章目录及序言 上篇&#xff1a;机器学习&#xff08;五&#xff09; -- 监督学习&#xff08;8&#xff09; --神经网络1 下篇&#xff1a; 前言 tips&#xff1a;标题前有“***”的内容为补充内容&#xff0c;是给好奇心重的宝宝看…

Fast Vision Transformers with HiLo Attention

总结 提出了 HiLo Attention 机制&#xff1a; 该机制将自注意力层分为两部分&#xff1a;Hi-Fi&#xff08;高频注意力&#xff09; 和 Lo-Fi&#xff08;低频注意力&#xff09;。Hi-Fi 捕捉局部细节&#xff0c;通过在局部窗口内应用自注意力&#xff0c;减少了计算复杂度…