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

代码随想录训练营第二十二天 77组合

第一题:

原题链接:77. 组合 - 力扣(LeetCode)

思路:

经典的回溯模板题:

终止条件,当中间变量用来存储单个结果的大小等于k,则将中间变量存放到结果数组中。

一个for循环横向遍历,递归为纵向遍历。

递归后要进行回溯。

代码如下:

class Solution {
public:vector<vector<int>> combine(int n, int k) {backtracking(n, k, 1);return res;}
private:vector<vector<int>> res;vector<int> path;void backtracking(int n, int k, int startIndex){if(path.size() == k){res.push_back(path);return;}for(int i = startIndex; i <= n; i++){path.push_back(i);backtracking(n, k, i + 1);path.pop_back();}}
};

第二题:

原题链接:216. 组合总和 III - 力扣(LeetCode)

思路:

同样的回溯模板题:

需要用一个sum来记录当前所有元素加起来的值是多少,然后和n进行比较即可。同时需要一个path来记录单个组合。

回溯的时候单个组合要pop_back(),sum要pop掉的那个值。

代码如下:

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

第三题:

原题链接:17. 电话号码的字母组合 - 力扣(LeetCode)

思路:

这题是有思路但是写不出来。

for循环遍历的是字符串中每个数字对应的英文字母。

递归是为了找到下一个位置的数字对应的英文字母。

需要用Index来指向当前遍历到字符串的哪个位置。在递归的时候+1表示遍历到下一个位置。

本题需要用一个string数组来记录每个数字对应的字符串。注意0和1下标对应的字符串为空。从2开始才有字符串。

终止条件:

中间变量的大小等于输入字符串的大小则存放入res数组中。

先将输入字符串的字符转换为数字。然后在找到数字对应的字符串后进行for循环。

最后就是进行递归和回溯。

代码如下:

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

相关文章:

代码随想录训练营第二十二天 77组合

第一题&#xff1a; 原题链接&#xff1a;77. 组合 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 经典的回溯模板题&#xff1a; 终止条件&#xff0c;当中间变量用来存储单个结果的大小等于k&#xff0c;则将中间变量存放到结果数组中。 一个for循环横向遍历…...

Unity踩坑记录

1. 如果同时在父物体和子物体上挂载BoxCollider&#xff0c;那么当使用&#xff1a; private void OnTriggerEnter2D(Collider2D collision){if (collision.CompareTag("CardGroup")){_intersectCardGroups.Add(collision.GetComponent<CardGroup>());}} 来判…...

内容安全复习 1 - 信息内容安全概述

文章目录 信息内容安全简介网络空间信息内容安全大模型 人工智能简介 信息内容安全简介 网络空间 网络空间是融合物理域、信息域、认知域和社会域&#xff0c;控制实体行为的信息活动空间。 上图展示了网络空间安全的结构。可以看到将网络空间划分为了网络域和内容域两个部分。…...

【深度学习】python之人工智能应用篇--跨模态生成技术

跨模态生成技术概述 跨模态生成技术是一种将不同模态的数据&#xff08;如文本、图像、音频、视频等&#xff09;进行融合和转换的技术。其目标是通过将一个模态的数据作为输入&#xff0c;生成与之对应的另一个模态的输出。这种技术对于突破单一模态的局限性&#xff0c;提高…...

springboot中获取某个注解下面的某个方法的方法名,参数值等等详细实例

在Spring Boot应用中&#xff0c;获取某个类或方法上的注解及其相关信息&#xff0c;包括方法名称、参数值等&#xff0c;通常涉及到反射和Spring的AOP&#xff08;面向切面编程&#xff09;特性。下面是一个示例&#xff0c;展示如何利用Spring AOP的Around注解来拦截带有特定…...

代码随想录——跳跃游戏Ⅱ(Leetcode 45)

题目链接 贪心 class Solution {public int jump(int[] nums) {if(nums.length 1){return 0;}int count 0;// 当前覆盖最远距离下标int curDistance 0;// 下一步覆盖距离最远下标int nextDistance 0;for(int i 0; i < nums.length; i){nextDistance Math.max(nums[…...

从0-1搭建一个web项目(package.json)详解

本章分析package.json文件详解 本文主要对packge.json配置子文件详解 ObJack-Admin一款基于 Vue3.3、TypeScript、Vite3、Pinia、Element-Plus 开源的后台管理框架。在一定程度上节省您的开发效率。另外本项目还封装了一些常用组件、hooks、指令、动态路由、按钮级别权限控制等…...

图解ReentrantLock的基石AQS-独占锁的获取与释放

大家好&#xff0c;我是呼噜噜&#xff0c;我们之前聊过Java中以互斥同步的方式保证线程安全&#xff1a;Sychronized&#xff0c;这次我们来再聊聊另一种互斥同步的方式Lock&#xff0c;本文会介绍ReentrantLock及其它的基石AQS的源码解析&#xff0c;一个非常重要的同步框架 …...

Perl语言入门学习读物

1. PERL 是什么? Perl 最初的设计者为Larry Wall&#xff0c;Perl借取了C、sed、awk、shell scripting以及很多其他程序语言的特性。Perl一般被称为“实用报表提取语言”(PracticalExtraction andReportLanguage)&#xff0c;有时也被称做“病态折中垃圾列表器”(Pathologica…...

电脑浏览器问题

网络连接正常&#xff0c;但是浏览器就是打不开网页&#xff0c;显示未连接什么的。 搞了半天&#xff0c;不是代理服务器问题。 也不是端口问题。 也不是软件版本问题。 竟然是浏览器插件的问题&#xff0c;插件禁用&#xff0c;奇迹般的好了。 参考&#xff1a; 电脑有网…...

[Docker] Ubuntu安装Home Assistant

本文主要记载一些Ubuntu安装Home Assistant的细节,方便后面重装。 1. 安装Docker 安装依赖 $ sudo apt-get install \apt-transport-https \ca-certificates \curl \gnupg-agent \software-properties-common添加 Docker 官方 GPG 密钥 $ curl -fsSL https://mirrors.ustc…...

浅谈请求中数据转换

目录 1. 前端 JS 数据类型2. JSON 数据类型&#xff08;数据传输格式&#xff09;3. 后端 Java 数据类型4. 后端序列化框架 Fastjson && Jackson 转换4.1. JSON 转换 Java4.2. Java 转换 JSON 1. 前端 JS 数据类型 数据类型示例Stringvar str 张三Number (数字)var a…...

Flutter学习:从搭建环境到运行

一、开发环境的搭建 本文所示内容都是在Windows系统下进行的。 1、下载 Flutter SDK Flutter 官网&#xff08;https://docs.flutter.cn/release/archive?tabwindows&#xff09; 或者通过 git clone -b master https://github.com/flutter/flutter.git 下载 2、配置环境…...

sheng的学习笔记-AI-聚类(Clustering)

ai目录 sheng的学习笔记-AI目录-CSDN博客 基础知识 什么是聚类 在“无监督学习”(unsupervised learning)中&#xff0c;训练样本的标记信息是未知的&#xff0c;目标是通过对无标记训练样本的学习来揭示数据的内在性质及规律&#xff0c;为进一步的数据分析提供基础。此类学…...

从0构建一个录制UI测试工具

很多UI自动化测试工具都具备录制UI自动化测试的能力&#xff0c;例如playwright&#xff0c;可以通过playwright vscode插件完成录制&#xff0c;如下图所示&#xff0c;当选择录制脚本时&#xff0c;会打开一个浏览器&#xff0c;在浏览器中输入被测应用url&#xff0c;用户在…...

代码随想录算法训练营第五十一天|LeetCode72 编辑距离、LeetCode647 回文子串、LeetCode516 最长回文子序列、动态规划的小总结

题1&#xff1a; 指路&#xff1a;72. 编辑距离 - 力扣&#xff08;LeetCode&#xff09; 思路与代码&#xff1a; 关于dp数组的定义&#xff0c;我们定义一个二维数组dp[i][j]&#xff0c;其含义为以i-1为结尾的字符串word1和以j-1为结尾的字符串word2&#xff0c;最近编辑…...

sessionStorage 能在多个标签页之间共享数据吗?

&#x1f9d1;‍&#x1f4bb; 写在开头 点赞 收藏 学会&#x1f923;&#x1f923;&#x1f923; 最近&#xff0c;我的一个朋友在面试中被一个关于 sessionStorage 的问题难住了。我们来聊聊这个话题。 sessionStorage 能在多个标签页之间共享数据吗&#xff1f; 在回答…...

鸿蒙期末项目(完结)

两天仅睡3个小时的努力奋斗之下&#xff0c;终于写完了这个无比拉跨的项目&#xff0c;最后一篇博客总体展示一下本项目运行效果兼测试&#xff0c;随后就是答辩被同学乱沙&#xff08;悲 刚打开软件&#xff0c;会看到如下欢迎界面&#xff0c;介绍本app的功能和优点 随后我们…...

【Linux】对共享库加载问题的深入理解——基本原理概述

原理概述 【linux】详解——库-CSDN博客 共享库被加载后&#xff0c;系统会为该共享库创建一个结构&#xff0c;这个结构体中的字段描述了库的各种属性。在内存中可能会加载很多库&#xff0c;每一个库都用一个结构体描述。把这些结构体用一些数据结构管理起来&#xff0c;系…...

easyui的topjui前端框架使用指南

博主今天也是第一次点开easyui的商业搜权页面&#xff0c;之前虽然一直在使用easyui前端框架&#xff08;easyui是我最喜欢的前端ui框架&#xff09;&#xff0c;但是都是使用的免费版。 然后就发现了easyui的开发公司居然基于easyui开发出了一个新的前端框架&#xff0c;于是我…...

Java中的程序异常处理介绍

一、异常处理机制 Java提供了更加优秀的解决办法&#xff1a;异常处理机制。 异常处理机制能让程序在异常发生时&#xff0c;按照代码的预先设定的异常处理逻辑&#xff0c;针对性地处理异常&#xff0c;让程序尽最大可能恢复正常并继续执行&#xff0c;且保持代码的清晰。 Ja…...

Gradle学习-3 Gradle插件

1、Gredle插件是什么 Gradle插件是用于扩展和增强Gradle构建系统的功能模块通过插件&#xff0c;Gradle可以执行各种构建任务&#xff0c;如编译代码、打包应用、运行测试等 Gradle插件主要分为&#xff1a;二进制插件、脚本插件 二进制插件二进制插件是预编译的、可以复用的…...

百度文心智能体,创建属于自己的智能体应用

百度文心智能体平台为你开启。百度文心智能体平台&#xff0c;创建属于自己的智能体应用。百度文心智能体平台是百度旗下的智能AI平台&#xff0c;集成了先进的自然语言处理技术和人工智能技术&#xff0c;可以用来创建属于自己的智能体应用&#xff0c;访问官网链接&#xff1…...

【软件测试】白盒测试与接口测试详解

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、什么是白盒测试 白盒测试是一种测试策略&#xff0c;这种策略允许我们检查程序的内部结构&a…...

【SpringBoot Web框架实战教程】03 SpingBoot 获取 http 请求参数

不积跬步&#xff0c;无以至千里&#xff1b;不积小流&#xff0c;无以成江海。大家好&#xff0c;我是闲鹤&#xff0c;微信&#xff1a;xxh_1459&#xff0c;十多年开发、架构经验&#xff0c;先后在华为、迅雷服役过&#xff0c;也在高校从事教学3年&#xff1b;目前已创业了…...

Mac14.1.2 M1芯片免费读写ntfs硬盘-亲测有效,免费!!!

1. 安装homebrew 打开终端&#xff0c;使用以下命令 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" 根据提示逐步完成即可&#xff0c;镜像选择我这里都是保持1的选项。 2. 重启终端 安装完成homebrew后&#xff0c;需…...

手写SpringMVC之ApplicationContextListener

什么是Spring MVC&#xff1f; Spring Web MVC是基于Servlet API构建的原始Web框架&#xff0c;从一开始就包含在Spring Framework中。正式名称“Spring Web MVC”来自其源模块的名称&#xff08; spring-webmvc &#xff09;&#xff0c;但它通常被称为“Spring MVC”。 手写…...

Paimon 在汽车之家的业务实践

汽车之家基于Paimon的实践 摘要&#xff1a;本文分享自汽车之家的王刚、范文、李乾⽼师。介绍了汽车之家基于 Paimon 的一些实践&#xff0c;和一些背景。内容主要为以下四部分&#xff1a; 一、背景 二、业务实践 三、paimon 优化实践 四、未来规划 一、背景 在使用Paimon之前…...

2024-06-27 问AI: 介绍一下 LLM building process

文心一言 LLM&#xff08;Large Language Model&#xff0c;大语言模型&#xff09;的构建过程是一个复杂且资源密集的任务&#xff0c;涉及多个关键步骤。以下是LLM构建过程的主要阶段&#xff0c;以及每个阶段的一些关键考虑因素&#xff1a; 数据收集与预处理&#xff1a;…...

猫也有自动厕所上了吗?自费分享好用的智能猫砂盆,看完不亏。

还有人在用普通猫砂盘吗&#xff1f;之前我也是用的普通猫砂盘&#xff0c;但我发现只要我在上班时间&#xff0c;我就无法顾忌到小猫的便便&#xff0c;但又不想回家就闻到一股臭味&#xff0c;更何况现在夏天也快到了&#xff0c;便便残留一会就会发酵发臭&#xff0c;导致生…...

wordpress安装创建数据库文件/小程序开发工具

大家好呀&#xff0c;打算写一个 Go 语言组件源码分析系列&#xff0c;一是为了能学习下 Go 语言&#xff0c;看下别人是怎么写 Go 的&#xff0c;二是也掌握一个组件。 本次选择了 Sentinel-Go&#xff0c;一是对 Java 版本的 Sentinel 算是有一些了解&#xff0c;也在生产上…...

地方门户网站建设要求/怎么样才能引流客人进店

单元格的高度自适应原理就是通过内部label的高度变化来增加和减少单元格的高度。 - (UILabel *)label { if(_label nil) { _label [[UILabel alloc] init]; [self.contentView addSubview:_label]; _label.numberOfLines 0; [_label mas_makeConstraints:^(MASConstraintMak…...

卖主机网站/百度网址安全中心怎么关闭

前言由于目前的工作中&#xff0c;原生app大量嵌入h5页面&#xff0c;很多的功能需要h5来实现&#xff0c;但是由于h5需要从网络加载&#xff0c;在弱网状态或者请求资源大的时候必然出现白屏&#xff0c;再网上搜索后发现并没有一个通用的解决方案&#xff0c;其中VasSonic(手…...

wordpress建响应网址/可以入侵的网站

BackTrack、exploitdb等 网站被黑事件最新消息 首先给大家报个好消息 Ettercap 工程源码并没有被植入后门 下面是Ettercap 主要开发人员Alberto Ornaghi (ALoR)提供的Ettercap source code的SHA1sum值 These are the SHA1sum from my local copy: 206972046b7cfc4150e5d08e…...

福建城乡建设部网站首页/seo推广培训费用

最近自己开始重新学习java基础了&#xff0c;做java开发不可避免要处理数据库&#xff0c;由于好久不写java了&#xff0c;对idea也有点陌生了。所以这里写篇用jdbc来连接mysql的文章至于mysql怎么装&#xff0c;请自行百度不多说先看代码import java.sql.Connection;import ja…...

做制作网站找啥工作/郑州网站推广方案

我有一个权限为4750的进程.我的Linux系统中存在两个用户. root用户和appz用户.该进程继承了以“appz”用户身份运行的进程管理器的权限.我有两个基本的例程&#xff1a;void do_root (void){int status;status seteuid (euid);if (status < 0) {exit (status);}}/* undo ro…...