leetcode刷题-回溯算法04

代码随想录回溯算法part01| 491.递增子序列、46.全排列、47.全排列II

  • 491.递增子序列
  • 46.全排列
  • 47.全排列II

491.递增子序列

leetcode题目链接
代码随想录文档讲解

思路

与上一题不同,不能用used列表,因为这个题不能排序,
在每一个for循环里面用一个集合记录遍历过的数

伪代码(C++)

python代码

class Solution:def backtracking(self, nums, start_index, path, result):if len(path) > 1:result.append(path[:])used = set()for i in range(start_index, len(nums)):if (path and nums[i] < path[-1]) or (nums[i] in used):continuepath.append(nums[i])used.add(nums[i])self.backtracking(nums, i+1, path, result)path.pop()def findSubsequences(self, nums: List[int]) -> List[List[int]]:result = []self.backtracking(nums, 0, [], result)return result

46.全排列

leetcode题目链接
代码随想录文档讲解

思路

排列(考虑顺序)和组合问题(不考虑顺序)的区别
借助used数组(需要进入递归)

python代码

class Solution:def backtracking(self, nums, used, path, result):if len(path) == len(nums):result.append(path[:])returnfor i in range(len(nums)):if used[i]:continuepath.append(nums[i])used[i] = 1self.backtracking(nums, used, path, result)# 做回溯used[i] = 0path.pop()def permute(self, nums: List[int]) -> List[List[int]]:result = []used = [False] * len(nums)self.backtracking(nums, used, [], result)return result

47.全排列II

leetcode题目链接
代码随想录文档讲解

思路

集合中有重复元素,去重,(排序)(数层去重used[i-1]==False)

class Solution:def backtracking(self, nums, used, path, result):if len(path) == len(nums):result.append(path[:])returnfor i in range(len(nums)):if (used[i] == 1) or (i >0 and nums[i] == nums[i-1] and used[i-1] == 0):continue # not breakpath.append(nums[i])used[i] = 1self.backtracking(nums, used, path, result)used[i] = 0path.pop()def permuteUnique(self, nums: List[int]) -> List[List[int]]:nums.sort()  # 排序result = []self.backtracking(nums, [0]*len(nums), [], result)return result

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

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

相关文章

基于字节大模型的论文翻译(含免费源码)

基于字节大模型的论文翻译 源代码&#xff1a; &#x1f44f; star ✨ https://github.com/boots-coder/LLM-application 展示 项目简介 本项目是一个基于大语言模型&#xff08;Large Language Model, LLM&#xff09;的论文阅读与翻译辅助工具。它通过用户界面&#xff08…

mysql的事务控制和数据库的备份和恢复

事务控制语句 行锁和死锁 行锁 两个客户端同时对同一索引行进行操作 客户端1正常运行 客户端2想修改&#xff0c;被锁行 除非将事务提交才能继续运行 死锁 客户端1删除第5行 客户端2设置第1行为排他锁 客户端1删除行1被锁 客户端2更新行5被锁 如何避免死锁 mysql的备份和还…

Tengine:Nginx二次开发-高性能进化

前言&#xff1a;在当今的互联网时代&#xff0c;Web 服务器的性能和稳定性对于网站的成功至关重要。Nginx 以其高性能和可扩展性而闻名&#xff0c;但有时候&#xff0c;我们需要更多的特性来满足特定的业务需求。Tengine&#xff0c;作为一个由淘宝网发起的 Nginx 二次开发版…

RK3588, FFmpeg 拉流 RTSP, mpp 硬解码转RGB

RK3588 ,基于FFmpeg, 拉取RTSP,使用 mpp 实现硬解码. ⚡️ 传送 ➡️ Ubuntu x64 架构, 交叉编译aarch64 FFmpeg mppRK3588, FFmpeg 拉流 RTSP, mpp 硬解码转RGBRk3588 FFmpeg 拉流 RTSP, 硬解码转RGBRK3588 , mpp硬编码yuv, 保存MP4视频文件.

Windows 下 Anaconda的安装与配置 GPU 版

给之前的电脑安一下深度学习环境 判断是否有NVIDIA GPU Ctrl Shift Esc 打开任务管理器 带此字眼表示有 NVIDIA GPU 安装Anaconda anaconda 打开邮箱会看到下载链接 这里建议修改为其他盘,要不然下载的包和创建的环境都在C盘&#xff0c;占用空间 三个都打钩 取…

【openssl】 version `OPENSSL_3.0.3‘ not found 问题

【openssl】 version OPENSSL_3.0.3 not found 问题 使用openssl时候报错&#xff1a; openssl lib/libcrypto.so.3: version OPENSSL_3.0.3 not found查阅CSDN发现有博主说把别的地方的libcrypto.so.3 复制过去就好了。 尝试无效 警告&#xff01;这个操作不对&#xff1a; 不…

flask flask-socketio创建一个网页聊天应用

应用所需环境&#xff1a; python 3.11.11 其他 只需要通过这个命令即可 pip install flask3.1.0 Flask-SocketIO5.4.1 -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple 最好是用conda创建一个新的虚拟环境来验证 完整的pip list如下 Package Version ----…

联邦学习防止数据泄露

文章目录 联邦学习防止数据泄露的原理联邦学习的优势联邦学习与集中式学习的成本分析联邦学习的实际应用案例个人设想参考文献 联邦学习 (Federated Learning) 是一种分布式机器学习技术&#xff0c;旨在解决数据隐私保护问题。它允许在分散的数据源上进行模型训练&#xff0c;…

STM32 水质水位检测项目(硬件架构)及(软件架构)

硬件选型 水位测量模块 TDS采集模块 外置ADC模块&#xff08;ADS1115&#xff09; 水位测量模块使用方法 水位测量原理 压力传感器&#xff1a;水越深压力越大 P ρgh Fps Fρgh*s P大气压 水位测量传感器本质上是一个压力测量传感器。压力的值和传感器产生的电压值是线…

C# 6.0 连接elasticsearch数据库

在 C# 6.0 中连接 Elasticsearch 数据库,您可以使用官方的 Elasticsearch 客户端库 NEST。NEST 是一个高性能的 .NET 客户端,用于与 Elasticsearch 进行交互。以下是一个详细的步骤指南,帮助您在 C# 6.0 项目中连接和操作 Elasticsearch。 1. 安装 NEST 包 首先,您需要在您…

服务器数据恢复—RAIDZ离线硬盘数超过热备盘数导致阵列崩溃的数据恢复案例

服务器存储数据恢复环境&#xff1a; ZFS Storage 7320存储阵列中有32块硬盘。32块硬盘分为4组&#xff0c;每组8块硬盘&#xff0c;共组建了3组RAIDZ&#xff0c;每组raid都配置了热备盘。 服务器存储故障&#xff1a; 服务器存储运行过程中突然崩溃&#xff0c;排除人为误操…

Java转C++之编程范式

1. 过程式编程&#xff08;Procedural Programming&#xff09; 在 C 中的表现 过程式编程是通过一系列的函数调用来实现程序的功能。函数是核心构建单元&#xff0c;数据和操作通过函数进行交互。 C 中&#xff1a;可以使用普通的函数和全局变量来进行过程式编程。Java 中&…

llama2中的model.py中的结构示意图

参考文章&#xff1a;https://zhuanlan.zhihu.com/p/679640407

开放词汇目标检测(Open-Vocabulary Object Detection, OVOD)综述

定义 开放词汇目标检测&#xff08;Open-Vocabulary Object Detection, OVOD&#xff09;是一种目标检测任务&#xff0c;旨在检测和识别那些未在训练集中明确标注的物体类别。传统的目标检测模型通常只能识别有限数量的预定义类别&#xff0c;而OVOD模型则具有识别“开放词汇…

Vue与React:前端框架的巅峰对决

文章目录 一、引言&#xff08;一&#xff09;前端框架发展现状简述 二、Vue 与 React 框架概述&#xff08;一&#xff09;Vue.js 简介&#xff08;二&#xff09;React.js 简介 三、开发效率对比&#xff08;一&#xff09;Vue 开发效率分析&#xff08;二&#xff09;React …

3分钟读懂数据分析的流程是什么

数据分析是基于商业目的&#xff0c;有目的地进行收集、整理、加工和分析数据&#xff0c;提炼出有价值的 信息的一个过程。整个过程大致可分为五个阶段&#xff0c;具体如下图所示。 1.明确目的和思路 在开展数据分析之前&#xff0c;我们必须要搞清楚几个问题&#xff0c;比…

vba批量化调整word的图和图表标题

vba代码 将图片进行居中操作 Sub ChangePictureFormate()Dim oPara As ParagraphDim oRange As RangeDim i As LongDim beforeIsPicture As BooleanbeforesIsPicture False 确保文档中至少有图片If ActiveDocument.InlineShapes.Count 0 ThenMsgBox "没有找到图片。&qu…

llama.cpp:PC端测试 MobileVLM -- 电脑端部署图生文大模型

llama.cpp&#xff1a;PC端测试 MobileVLM 1.环境需要2.构建项目3.PC测试 1.环境需要 以下是经实验验证可行的环境参考&#xff0c;也可尝试其他版本。 &#xff08;1&#xff09;PC&#xff1a;Ubuntu 22.04.4 &#xff08;2&#xff09;软件环境&#xff1a;如下表所示 工…

词嵌入(Word Embedding):自然语言处理的基石

目录 ​编辑 词嵌入&#xff08;Word Embedding&#xff09;&#xff1a;自然语言处理的基石 引言 词嵌入的基本概念 词嵌入的主要方法 1. Word2Vec 2. GloVe 3. FastText 4. ELMo 5. BERT 词嵌入的应用场景 词嵌入的研究进展 结论 词嵌入&#xff08;Word Embedd…

AutoSarOS中调度表的概念与源代码解析

--------AutoSarOS调度表的概念 一、AutoSarOS 是什么以及调度表的重要性 AutoSar(Automotive Open System Architecture)是汽车行业的一个开放式软件架构标准哦。它就像是一种大家都遵循的规则,能让不同的软件供应商一起合作开发汽车软件,这样软件就能被重复使用,开发效…