代码随想录算法训练营Day20 | 40.组合总和||、39.组合总和、131.分割回文串

LeetCode 40 组合总和||

在这里插入图片描述
本题思路:由于解集中不能包含重复的组合,所以要进行去重的操作。

  • 首先要将数组先进行一个排序操作
  • 然后在树层进行去重操作!(不懂的可以去看代码随想录讲解视频)
  • 利用一个 used 数组来表示,数组中的元素是否已经用过

首先是要找到出口,该题的出口就是,sum > target 的时候就要 return,如果等于的时候,就要保存结果。
然后在树层进行去重

class Solution {List<Integer> path = new ArrayList();List<List<Integer>> res = new ArrayList();int sum = 0;public List<List<Integer>> combinationSum2(int[] candidates, int target) {int[] used = new int[candidates.length];Arrays.sort(candidates);backtracking(candidates,target,sum,0,used);return res;}public void backtracking(int[] candidates, int target, int sum, int startIndex,int[] used){if(sum > target){return;}if(sum == target){res.add(new ArrayList(path));return;}for(int i = startIndex; i < candidates.length; i++){if(i > 0 && candidates[i] == candidates[i-1] && used[i-1] == 0){continue;}path.add(candidates[i]);sum += candidates[i];used[i] = 1;backtracking(candidates,target,sum,i+1,used);sum -= candidates[i];used[i] = 0;path.removeLast();}}
}

LeetCode 39 组合总和

在这里插入图片描述
本题思路:和上题一样,但是不用进行去重操作

  • 首先找到终止条件,如果 sum > target 就 return,如果 等于 target 就保存路径元素。
class Solution {List<Integer> path = new ArrayList();List<List<Integer>> res = new ArrayList();int sum = 0;public List<List<Integer>> combinationSum(int[] candidates, int target) {backtracking(candidates,target,0,sum);return res;}public void backtracking(int[] candidates,int target,int startIndex,int sum){if(sum > target){return;}if(sum == target){// 将路径元素存起来res.add(new ArrayList(path));return;}for(int i = startIndex; i < candidates.length; i++){path.add(candidates[i]);sum += candidates[i];backtracking(candidates,target,i,sum);sum -= candidates[i];path.removeLast();}}}

LeetCode 131 分割回文串

在这里插入图片描述
本题思路:首先找到终止条件,就是 startIndex > s.length(),此时就要开始记录路径的元素。 关于判断 s 是否是 回文串的逻辑,放在 for 循环里面判断,如果是就放进去,不是就不放到 path 中,所以在终止条件记录元素的时候,可以直接记录保存。

class Solution {List<String> path = new ArrayList();List<List<String>> res = new ArrayList();public List<List<String>> partition(String s) {backtracking(s,0);return res;}public void backtracking(String s, int startIndex){if(startIndex >= s.length()){res.add(new ArrayList(path));return;}for(int i = startIndex; i < s.length(); i++){if(judge(s,startIndex,i)){String str = s.substring(startIndex, i + 1);path.add(str);}else{continue;}backtracking(s,i+1);path.removeLast();}}public boolean judge(String s, int start, int end){while(start <= end){if(s.charAt(start) != s.charAt(end)){return false;}start++;end--;}return true;}}

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

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

相关文章

全链路压力测试有哪些主要作用

全链路压力测试是在软件开发和维护过程中不可或缺的一环&#xff0c;尤其在复杂系统和高并发场景下显得尤为重要。下面将详细介绍全链路压力测试的主要作用。 一、全链路压力测试概述 全链路压力测试是指对软件系统的全部组件(包括前端、后端、数据库、网络、中间件等)在高负载…

解决 ubuntu 下编译文件的时候与 YAML 相关的的报错

输入&#xff1a; catkin build -DCMAKE_C_COMPILERgcc-8 -DCMAKE_CXX_COMPILERg-8 或 catkin build airsim_tutorial_pkgs -DCMAKE_C_COMPILERgcc-8 -DCMAKE_CXX_COMPILERg-8 报错如下&#xff1a; 可能是缺少 yaml-cpp 文件&#xff0c;然后操作&#xff1a; sudo apt-g…

书生·浦语大模型实战2

轻松玩转书生浦语大模型趣味 Demo 大模型及 InternLM 模型简介 什么是大模型 大模型通常指的是机器学习或人工智能领域中参数数量巨大、拥有庞大计算能力和参数规模的模型。这些模型利用大量数据进行训练&#xff0c;并且拥有数十亿甚至数千亿个参数。大模型的出现和发展得益…

单片机原理及应用——C51语言版(第2版,林立、张俊亮编著)课后习题及答案

第一章习题 1.1 单项选择题 &#xff08;1&#xff09; 单片机又称为单片微计算机&#xff0c;最初的英文缩写是____。 答案(D) A.MCPB.CPUC.DPJD.SCM &#xff08;2&#xff09; Intel公司的MCS-51系列单片机是______的单片机。 答案(C) A.1位B.4位C.8位D.16位 &#xf…

66.网游逆向分析与插件开发-角色数据的获取-角色类的数据分析与C++还原

内容来源于&#xff1a;易道云信息技术研究院VIP课 ReClass.NET工具下载&#xff0c;它下方链接里的 逆向工具.zip 里的reclass目录下&#xff1a;注意它分x64、x32版本&#xff0c;启动是用管理员权限启动否则附加时有些进程附加不上 链接&#xff1a;https://pan.baidu.com/…

【S32K 进阶之旅】 NXP S32K3 以太网 RMII 接口调试(2)

前言 前文介绍了 NXP S32K3 以太网 RMII 接口调试的开发环境搭建&#xff0c;下面开始详解软件调试步骤。没看过第一节的小伙伴请移步《【S32K 进阶之旅】 NXP S32K3 以太网 RMII 接口调试&#xff08;1&#xff09;》&#xff0c;话不多说我们直接进入正题。 lwip Stack 介绍 …

视频号小店发展趋势如何?适合新手吗?

我是电商珠珠 视频号团队在22年7月发展了自己的电商平台-视频号小店。截止到目前为止&#xff0c;也发展了不过一年的时间&#xff0c;所以各项平台政策还不太严谨。 一个新兴平台所做的第一步就是招揽更多的商家来入驻&#xff0c;就会将红利全部倾向商家&#xff0c;而在今…

Python 编写不同时间格式的函数

该代码是一个时间相关的功能模块&#xff0c;提供了一些获取当前时间的函数。 Report_time() 函数返回当前时间的格式化字符串&#xff0c;例如 "20240110114512"。Y_M_D_h_m_s_time() 函数返回当前时间的年、月、日、时、分、秒的元组格式。Y_M_D_h_m_s() 函数返回…

【笔记】书生·浦语大模型实战营——第三课(基于 InternLM 和 LangChain 搭建你的知识库)

【参考&#xff1a;tutorial/langchain at main InternLM/tutorial】 【参考&#xff1a;(3)基于 InternLM 和 LangChain 搭建你的知识库_哔哩哔哩_bilibili-【OpenMMLab】】 笔记 基础作业 这里需要等好几分钟才行 bug&#xff1a; 碰到pandas相关报错就卸载重装 输出文字…

PyTorch项目源码学习(2)——Tensor代码结构初步学习

PyTorch版本&#xff1a;1.10.0 Tensor Tensor是Pytorch项目较为重要的一部分&#xff0c;其中的主要功能如存储&#xff0c;运算由C和CUDA实现&#xff0c;本文主要从前端开始探索学习Tensor的代码结构。 结构探索 PyTorch前端位于torch目录下&#xff0c;从_tensor.py可以…

Python基础语法(上)——基本语法、顺序语句、判断语句、循环语句(有C++基础快速掌握Python语言)

文章目录 0.python小技巧与易错点1.python 与 c 语法有哪些区别2.Python基本语法2.1python的变量类型2.2python中的运算符2.3python中的表达式2.4python中的输入输出 3.python判断语句3.1基本用法&#xff1a;3.2关于else if 的用法3.3关于pass语句3.4python变量的作用域3.5pyt…

基于深度学习的果蔬检测识别系统(含UI界面、yolov5、Python代码、数据集)

项目介绍 项目中所用到的算法模型和数据集等信息如下&#xff1a; 算法模型&#xff1a;     yolov5 yolov5主要包含以下几种创新&#xff1a;         1. 添加注意力机制&#xff08;SE、CBAM、CA等&#xff09;         2. 修改可变形卷积&#xff08;DySnake-主…

MySQL之导入以及导出远程备份v

目录 一.navact数据导入导出 1.1 导入 1.2 导出 二. mysqldump命令导入导出数据 2.1 导入 2.2 导出 三.load data file进行数据导入导出&#xff08;只限于单表&#xff09; 3.1 导入 3.2 导出 四.远程连接 好啦就到这里了哦!!!希望帮到你哦!!! 一.navact数据导入导…

CSS响应式布局

目录 rem单位 媒体查询 rem 媒体查询 rem适配方案&#xff08;了解&#xff09; 响应式布局总结 rem单位 1.设置文字大小的单位 px&#xff1a;设置为固定的css像素 em&#xff1a;相对于父元素字体的大小 %&#xff1a;相对于父元素字体的大小 rem&#xff1a;相对于…

申请企业通配符SSL证书流程

通配符SSL证书&#xff0c;又叫泛域名SSL证书&#xff0c;可以用一张SSL证书同时保护主域名以及主域名下的所有子域名。按照验证方式可以将通配符SSL证书分为DV通配符SSL证书和OV通配符SSL证书。其中OV通配符SSL证书只支持企事业单位申请&#xff0c;又称之为OV企业型通配符SSL…

初识MySQL:数据库相关概念,SQL语法以及DDL(数据库操作,表操作)

目录 1.数据库相关概念2.关系型数据库&#xff08;RDBMS&#xff09;3.SQL通用语法4.SQL分类5.DDL-数据库操作6.DDL-表操作1.查询表2.创建表3.数据类型1.数值类型2.字符串类型3.日期类型 4.修改表5.删除表 1.数据库相关概念 2.关系型数据库&#xff08;RDBMS&#xff09; 关系型…

ConcurrentHashMap的原理分析学习

ConcurrentHashMap 的初步使用及场景 CHM 的使用 ConcurrentHashMap 是 J.U.C 包里面提供的一个线程安全并且高效的 HashMap&#xff0c;所以ConcurrentHashMap 在并发编程的场景中使用的频率比较高&#xff0c;那么这一节课我们就从ConcurrentHashMap 的使用上以及源码层面来…

MVIT图像分类 学习笔记 (附代码)

论文地址&#xff1a;https://arxiv.org/pdf/2104.11227.pdf 代码地址&#xff1a;https://github.com/facebookresearch/SlowFast 1.是什么&#xff1f; MViT&#xff08;Multiscale Vision Transformers&#xff09;是一种多尺度视觉Transformer模型。它的关键概念是逐步增…

2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷⑤

2023年全国职业院校技能大赛&#xff08;高职组&#xff09; “云计算应用”赛项赛卷5 目录 需要竞赛软件包环境以及备赛资源可私信博主&#xff01;&#xff01;&#xff01; 2023年全国职业院校技能大赛&#xff08;高职组&#xff09; “云计算应用”赛项赛卷5 模块一 …

算法刷题常用方法

&#x1f4d1;前言 本文主要是【java】——算法刷题常用方法的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 &#x1f304;每日一句&…