小山菌_代码随想录算法训练营第二十六天| 39. 组合总和 、40.组合总和II 、 131.分割回文串

39. 组合总和

文档讲解:代码随想录.组合总和
视频讲解:带你学透回溯算法-组合总和(对应「leetcode」力扣题目:39.组合总和)| 回溯法精讲!
状态:已完成

代码实现

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

心得体会

1.回溯思想的理解更加深入,逐渐上手

40.组合总和II

文档讲解:代码随想录.组合总和II
视频讲解:回溯算法中的去重,树层去重树枝去重,你弄清楚了没?| LeetCode:40.组合总和II
状态:已完成

代码实现

class Solution {
private:vector<vector<int>> result;vector<int> path;void backtracking(vector<int>& candidates, int target, int sum,int start_index, vector<bool>& used) {if (sum == target) {result.push_back(path);return;}for (int i = start_index;i < candidates.size() && sum + candidates[i] <= target; i++) {if (i > 0 && candidates[i] == candidates[i - 1] &&used[i - 1] == false) {continue;}sum += candidates[i];path.push_back(candidates[i]);used[i] = true;backtracking(candidates, target, sum, i+1, used);used[i] = false;sum -= candidates[i];path.pop_back();}}public:vector<vector<int>> combinationSum2(vector<int>& candidates, int target) {vector<bool> used(candidates.size(), false);result.clear();path.clear();sort(candidates.begin(), candidates.end());backtracking(candidates, target, 0, 0, used);return result;}
};

心得体会

1.思维逻辑有些混乱,总感觉有些地方理解不到位,暂时先按照答案输入了一遍

131.分割回文串

文档讲解:代码随想录.分割回文串
视频讲解:带你学透回溯算法-分割回文串(对应力扣题目:131.分割回文串)| 回溯法精讲!
状态:未完成,后续再补充

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

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

相关文章

Thinkphp校园新闻发布系统源码 毕业设计项目实例

Thinkphp校园新闻发布系统源码 毕业设计项目实例 校园新闻发布系统模块&#xff1a; 用户模块&#xff1a;注册&#xff0c;登陆&#xff0c;查看个人信息&#xff0c;修改个人信息&#xff0c;站内搜索&#xff0c;新闻浏览等功能&#xff0c; 后台管理员模块&#xff1a;会员…

MySQL日志——redolog

redo log&#xff08;重做日志&#xff09; 为什么需要redo log&#xff1f; 在mysql提交一个事务后&#xff0c;这个事务所作的数据修改并不会直接保存到磁盘文件中&#xff0c;而是先保存在buffer pool缓冲区中&#xff0c;在需要读取数据时&#xff0c;先从缓冲区中找&…

破局消费供应链,企业费用管理如何应对变与不变?

供应链管理在过去一直被局限在生产与产品供应领域&#xff0c;更多被理解为生产及流通过程中&#xff0c;涉及将产品或服务提供给最终用户活动的上游与下游企业所形成的网链结构&#xff0c;即将产品从商家送到消费者手中整个链条。因为直接对企业利润产生重大影响&#xff0c;…

鸿蒙 Text文本过长超出Row的范围问题

代码如下: 可以发现随着文本内容的增加, 第二个组件test2明显被挤出了屏幕外, 感觉像是Row自己对内容的约束没做好一样, 目前没看到官方的推荐解决方法, 机缘巧合下找到了个这种的办法, 给内容会增加的组件设置layoutWeight(), 借助layoutWeight的特性来解决该问题, 改动后代码…

MaxKB-无需代码,30分钟创建基于大语言模型的本地知识库问答系统

简介 MaxKB 是一个基于大语言模型 (LLM) 的智能知识库问答系统。它能够帮助企业高效地管理知识&#xff0c;并提供智能问答功能。想象一下&#xff0c;你有一个虚拟助手&#xff0c;可以回答各种关于公司内部知识的问题&#xff0c;无论是政策、流程&#xff0c;还是技术文档&a…

简析:分账系统

分账系统是一种基于银行或三方支付机构备付金账户&#xff0c;用于实现资金分配和结算的关键工具。它能够对交易过程中的资金进行准确的分配&#xff0c;确保每个参与者/合作伙伴按照规定的比例获得其应得的收益。本文将初步探讨分账系统的定义、功能、应用领域以及其在商业和金…

热门:最新植物大战僵尸杂交版张大仙主播同款

软件介绍: 植物大战僵尸杂交版是由B站UP主“潜艇伟伟迷”制作的一款结合了《植物大战僵尸》原有元素与创新玩法的游戏。这款游戏以其独特的“杂交”植物概念在B站上迅速走红&#xff0c;吸引了大量玩家的关注和讨论。在杂交版中&#xff0c;每个植物都有专属的特点以及玩法&am…

苍穹外卖环境搭建

一、前端环境搭建 ①整体结构 ②前端工程基于nginx运行 启动nginx:双击 nginx.exe 即可启动 nginx 服务&#xff0c;访问端口号为 80 进入浏览器地址输入locallhost回车 二、后端环境搭建 后端初始工程基于maven进行项目构建&#xff0c;并且进行分模块开发 (1) idea打开初始…

WordPress——Argon主题美化

文章目录 Argon主题美化插件类类别标签页面更新管理器文章头图URL查询监视器WordPress提供Markdown语法评论区头像设置发信设置隐藏登陆备份设置缓存插件 主题文件编辑器页脚显示在线人数备案信息(包含备案信息网站运行时间)banner下方小箭头滚动效果站点功能概览下方Links功能…

分布式并行策略

1.数据并行&#xff08;DP&#xff09; 将小批量分为n块&#xff0c;每个GPU拿到完整参数计算一块数据的梯度。&#xff08;通常性能会更好&#xff09; 假如一个批量有128个样本&#xff0c;然后有2个GPU&#xff0c;那么每个GPU可以拿到64个样本。&#xff08;每个GPU计算完…

【python】OpenCV—Segmentation

文章目录 cv2.kmeans牛刀小试 cv2.kmeans cv2.kmeans 是 OpenCV 库中用于执行 K-Means 聚类算法的函数。以下是根据参考文章整理的 cv2.kmeans 函数的中文文档&#xff1a; 一、函数功能 cv2.kmeans 用于执行 K-Means 聚类算法&#xff0c;将一组数据点划分到 K 个簇中&…

一文看懂E2PROM、FLASH等芯片,软件开发

对于EEPROM和Flash存储器这类非易失性存储芯片的软件开发&#xff0c;需要特别关注以下几点&#xff1a; 存储容量&#xff1a;了解芯片提供的存储空间大小&#xff0c;以及如何访问所有的存储单元。 页面大小和擦除块大小&#xff1a;对于Flash存储器&#xff0c;了解最小写入…

项目四:TensorRT编程

TensorRT编程 - 单层感知机结构 build.cpp /* 一般先是运行 build.cpp, 在运行 runtime.cu TensorRT命名空间是 nvinfer1; 1.创建builder 2.创建网络定义: builder --> network 3.配置参数: builder --> config 4.生成engine: builder --> engine(network, config) …

Altair 助力优化摩托车空气动力学性能,实现最佳的整流罩设计

案例简介 整流罩是绝大多数摩托车的重要组成部分&#xff0c;旨在提高车辆的空气动力学性能和稳定性。Altair 与 KTM 公司员工组成的项目团队&#xff0c;针对摩托车整流罩空气动力学方面的学生项目&#xff0c;展开了密切合作。 项目任务主要是对摩托车整流罩设计进行比较&…

山体滑坡监测利器:传感器与智能监测平台的应用

山体滑坡&#xff0c;这一地质灾害的代名词&#xff0c;指的是山坡上的土体或岩体在重力作用下&#xff0c;因自然或人为因素而向下滑动的现象。滑坡具有突发性、隐蔽性、危害性和破坏性等特征&#xff0c;因此&#xff0c;对于山体滑坡的监测工作显得尤为重要。本文将探讨山体…

豆包高质量声音有望复现-Seed-TTS

我们介绍了 Seed-TTS&#xff0c;这是一个大规模自回归文本转语音 &#xff08;TTS&#xff09; 模型系列&#xff0c;能够生成与人类语音几乎没有区别的语音。Seed-TTS 作为语音生成的基础模型&#xff0c;在语音上下文学习方面表现出色&#xff0c;在说话人的相似性和自然性方…

Vitis HLS 学习笔记--Stream Chain Matrix Multiplication

目录 1. 简介 2. 示例解析 2.1 示例功能说明 2.2 函数说明 2.2.1 mmult 函数 2.2.2 mm2s 函数 2.2.3 s2mm 函数 2.2.4 总示意图 3. 总结 1. 简介 这是一个包含使用数据流的级联矩阵乘法的内核。该内核启用了 ap_ctrl_chain&#xff0c;以展示如何重叠多个内核调用队…

防火墙规则来阻止攻击者的 IP 地址

1. iptables 要禁止服务器与特定 IP 地址的通信&#xff0c;可以使用防火墙来设置规则。在 Ubuntu 上&#xff0c;iptables 是一个常用的防火墙工具。以下是使用 iptables 设置禁止与特定 IP 通信的步骤&#xff1a; 阻止所有进出的通信 如果你想阻止服务器与特定 IP 地址的…

AES加解密工具类

文章目录 前言一、AES加解密工具类总结 前言 当涉及到数据的安全性和保密性时&#xff0c;加密是一种关键的技术手段。AES&#xff08;Advanced Encryption Standard&#xff09;是一种广泛使用的对称加密算法&#xff0c;被认为是目前最安全和最常用的加密算法之一。 一、AES…

2024年最好用的精简系统推荐!旧电脑福音!

精简版电脑系统经过精心优化&#xff0c;去除了冗余功能&#xff0c;保留了核心功能&#xff0c;让用户的操作更加便捷高效&#xff0c;同时也具备强大的兼容性和稳定性&#xff0c;整体操作体验感很好。但是&#xff0c;许多新手用户不知道在哪里才可以找到好用的精简版系统&a…