LeetCode 第二十五天 2024.8.12
1. :递增子序列
题目链接: 491. 非递减子序列 - 力扣(LeetCode)
应用条件:回溯
难点:
这道题的难点在于如何去重,肯定不能像我们在组合中去重那样对数组排序。而且我们是要对每一层进行去重,这一点很重要。要想明白一层的意义,每一次for循环代表着一层,for循环里面的backtracking代表深度。所以在每次for循环前面设立一个set,for循环里判断现在取的这个数在不在set里,在就不取了。这样就避免了重复问题。
个人错误:
在递归中第一个判断就加了return,导致输出结果少了好多。
思路:
class Solution:def findSubsequences(self, nums: List[int]) -> List[List[int]]:res = []if len(nums) <= 1:return resself.backtracking(nums,0,[],res)return resdef backtracking(self,nums,startindex,cur,res):if len(cur) >= 2 and cur[len(cur)-1] >= cur[len(cur)-2]:res.append(cur[:])used = set()for i in range(startindex,len(nums)):if (cur and nums[i] < cur[-1]) or nums[i] in used:continueused.add(nums[i])cur.append(nums[i])self.backtracking(nums,i+1,cur,res)cur.pop()
2. :全排列
题目链接: 46. 全排列 - 力扣(LeetCode)
应用条件:回溯
难点:
这道题的目的是要找到数组的全排列,所以我们不能有startindex这个参数,但如果像上一道题那样对层去重会解决不了对树杈(树的深度)去重的问题,例如会出现[1,1,1]这样的情况,所以我们要对列去重,可以直接在方法中再传入一个参数,这个参数显示应该对哪个元素再列上去重,再遍历完这一列后,再恢复元素。
个人错误:
思路:
class Solution:def permute(self, nums: List[int]) -> List[List[int]]:res = []if len(nums) == 0:return resself.backtracking(nums,[],res,[False]*len(nums))return resdef backtracking(self,nums,cur,res,used):if len(cur) == len(nums):res.append(cur[:])return for i in range(len(nums)):if used[i]:continueused[i] = Truecur.append(nums[i])self.backtracking(nums,cur,res,used)used[i] = Falsecur.pop()
3. :全排列 II
题目链接: 47. 全排列 II - 力扣(LeetCode)
应用条件:回溯
难点:
这道题又要对层去重,又要对树杈去重,综合了前两道题的去重方法,就可以做出来了。
个人错误:
思路:
class Solution:def permuteUnique(self, nums: List[int]) -> List[List[int]]:res = []if len(nums) == 0:return resself.backtracking(nums,[],res,[False]*len(nums))return resdef backtracking(self,nums,cur,res,used):if len(cur) == len(nums):res.append(cur[:])return usedd =set()for i in range(len(nums)):if used[i] or (nums[i] in usedd):continueused[i] = True usedd.add(nums[i])cur.append(nums[i])self.backtracking(nums,cur,res,used)used[i] = Falsecur.pop()
相关文章:
LeetCode 第二十五天 2024.8.12
1. :递增子序列 题目链接: 491. 非递减子序列 - 力扣(LeetCode) 应用条件:回溯 难点: 这道题的难点在于如何去重,肯定不能像我们在组合中去重那样对数组排序。而且我们是要对每一层进行去重,…...
Elasticsearch 全文查询详解
全文查询(Full-Text Query)是 Elasticsearch 中的核心功能之一,用于对非结构化文本数据进行高效检索。与结构化查询不同,全文查询不仅仅是简单的精确匹配,还包括对文本进行分析和处理,从而实现更复杂的搜索…...
20240810在荣品RK3588S-AHD开发板的预置Android13下挂载exFAT的256GB的TF卡
df -h mount fdisk无效 20240810在荣品RK3588S-AHD开发板的预置Android13下挂载exFAT的256GB的TF卡 2024/8/10 21:19 缘起:当时比较便宜96.9¥/想看看256GB的TF卡的高速卡的效果,就在京东入手了3张三星的高速TF卡。最近在弄RK3588S,…...
java基础进阶——log日志、类加载器、XML、单元测试、注解、枚举类
前言 这篇内容主要掌握的就是logback使用、理解类加载器、XML文件的编写,XML文档约束schema,用Dom4j解析XML文档,Xpath检索XML文档,完整使用Junit单元测试框架常用部分,注解的定义和使用,枚举类的定义和开发…...
《向量数据库指南》——控制Chatbot对话内容:Dopple AI的创新实践与用户体验优化
控制Chatbot对话内容:Dopple AI的创新实践与用户体验优化 在Chatbot技术日益成熟的今天,如何有效地控制对话内容,以满足用户多样化的需求,成为了开发者们关注的焦点。Dopple AI,作为一款先进的聊天机器人平台,通过其独特的交互设计和后端技术支持,为用户提供了前所未有…...
构建实时数据仓库:流式处理与实时计算技术解析
目录 一、流式处理 请求与响应 批处理 二、实时计算 三、Lambda架构 Lambda架构的缺点 四、Kappa架构 五、实时数据仓库解决方案 近年来随着业务领域的不断拓展,尤其像互联网、无线终端APP等行业应用的激增,产生的数据量呈指数级增长,对海量数…...
python算术表达式遗传算法
import random import operator import math# 定义可能的运算符和操作 ops {: ,-: -,*: *,/: /,sin: math.sin,cos: math.cos }# 随机生成一个表达式(个体) def generate_expression(depth0):if depth > 2: # 限制表达式的最大深度return str(rando…...
net.sf.jsqlparser.statement.select.SelectItem
今天一启动项目,出现了这个错误,仔细想了想,应该是昨天合并代码,导致的mybatis-plus版本冲突,以及分页PageHelper版本不兼容 可以看见这个我是最下边的 Caused by 报错信息,这个地方提示我 net .s…...
lua匹配MAC地址 正则表达式
LUA的正则表达式匹配很弱智,能不用lua就不要用lua。 %x表示十六进制数值 (%x%x):(%x%x):(%x%x):(%x%x):(%x%x):(%x%x)它不允许这样用: ((%x%x):){5}(%x%x)mac这还算好办,ipv4就难了,ipv6不可能,这样写下来那一串表达…...
Chainlit快速实现AI对话应用并将聊天数据的AWS S3 和 Azure Blob云服务中
自定义数据层 Literal AI 提供了最简单的方法来保存、分析和监控您的数据。 如果您正在考虑实现自定义数据层,请查看此处的示例以获取一些启发。 此外,我们非常希望看到社区主导的开源数据层实现并将其列在这里。如果您有兴趣做出贡献,请通过 Discord 与我们联系。 您需…...
浅谈性能优化(基于C++)
本文主要针对C的性能优化方法展开讨论。虽然这些方法也适用于一些其他语言,但由于C经常用于底层操作,提供了更多的优化空间;相比之下,诸如Python、Kotlin等高级语言由于其抽象程度更高,优化空间较少。 性能优化原理 …...
Python 报错:ModuleNotFoundError: No module named ‘Crypto‘
Crypto报错解决方案 Python 报错:ModuleNotFoundError: No module named Crypto前言问题解决方案 Python 报错:ModuleNotFoundError: No module named ‘Crypto’ 前言 Crypto是一个加密模块,它包含了多种加密算法,如 AES、DES、…...
UE(User Equipment) 和 UA(User Agent)
UE(User Equipment) UE 是 用户设备,这是一个泛指的术语,涵盖了所有类型的终端设备,例如手机、电脑、平板、智能手表等。这些设备可以连接到网络并进行通信。UE可以包含多种功能,包括对话(语音…...
视觉SLAM ch3补充——在Linux中配置VScode以及CMakeLists如何添加Eigen库
ch3中的所有代码,除了在kdevelop中运行,还可以在VScode中运行。下面将简要演示配置过程,代码不再做解答,详细内容在下面的文章中。(这一节中的pangolin由于安装过程中会出现很多问题,且后续内容用不到该平台…...
开关电源:优化电子产品中的能源使用
电压转换器是许多技术系统的支柱。根据应用的不同,所需的电源单元由变压器、整流器 AC/DC 转换器实现。当高性能开关电源尚未上市时,几乎只使用 50 Hz 变压器解决方案。 电源注意事项 电能几乎完全以三相电流的形式提供,系统电压为 10 ...3…...
Java语言程序设计——篇十三(2)
🌿🌿🌿跟随博主脚步,从这里开始→博主主页🌿🌿🌿 欢迎大家:这里是我的学习笔记、总结知识的地方,喜欢的话请三连,有问题可以私信🌳🌳&…...
python结合csv和正则实现条件筛选数据统计分数
前景提要: 有一个项目的数值和员工统计的对不上,如果一页一页翻找自己手动算,一个就有16、7页, 功能实现 1、创建csv文件 需要将每一个模块的所有数据头提取出来,这个可以直接用爬虫或者手工复制出来,因…...
Ubuntu系统的基础操作和使用|Linux|安装|网络连接|更新与升级系统|系统维护|故障排除|监控|桌面环境|虚拟机|快捷键
目录 1. Ubuntu系统的安装与初步设置 1.1 下载与安装Ubuntu 1.2 创建用户和设置密码 1.3 配置网络连接 1.4 更新与升级系统 2. Ubuntu的基本操作 2.1 文件与目录管理 2.2 系统进程管理 2.3 软件安装与管理 2.4 权限与用户管理 3. 系统维护与故障排除 3.1 系统日志查…...
day 38
2824.统计和小于目标的下标对数目 int countPairs(int* nums, int numsSize, int target){int x0;for(int i0;i<numsSize;i){for(int ji1;j<numsSize;j){if(nums[i]nums[j]<target){x;}}}return x; }2951.找出峰值 int* findPeaks(int* mountain, int mountainSize,…...
352532
c语言中的小小白-CSDN博客c语言中的小小白关注算法,c,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm1001.2014.3001.5343 给大家分享一句我很喜欢我话: 知不足而奋进,望远山而前行&am…...
Day.38 | 1143.最长公共子序列 1035.不相交的线 53.最大子序和 392.判断子序列
1143.最长公共子序列 要点:dp[i][j] dp[i - 1][j - 1] 1; dp[i][j] max(dp[i - 1][j], dp[i][j - 1]); class Solution { public:int longestCommonSubsequence(string text1, string text2) {vector<vector<int>> dp(text1.size() 1, vector<…...
pytorch 3 计算图
计算图结构 分析: 起始节点 ab 5 - 3ac 2b 3d 5b 6e 7c d^2f 2e最终输出 g 3f - o(其中 o 是另一个输入) 前向传播 前向传播按照上述顺序计算每个节点的值。 反向传播过程 反向传播的目标是计算损失函数(这里假设为…...
一文吃透:暗水印是什么?企业防泄密可以加暗水印吗?
设计部主管:昨天下班的时候我在办公室捡到一张文件,上面可是我们最新产品的设计草稿,严禁打印的,到底是谁干的? 员工:办公室没有监控,似乎很难查到哦。 网络部经理:不用担心&#…...
Ajax-02.Axios
Axios入门 1.引入Axios的js文件 <script src"js/axios-0.18.0.js"></script> Axios 请求方式别名: axios.get(url[,config]) axios.delete(url[,config]) axios.post(url[,data[,config]]) axios.put(url[,data[,config]]) 发送GET/POST请求 axios.get…...
NodeJS的核心配置文件package.json和package.lock.json详解
package.json 文件 package.json 文件是 Node.js 项目的核心配置文件,它包含了项目的基本信息、依赖关系以及一些脚本命令等。以下是 package.json 文件的主要字段说明: name:项目的名称,必须是小写,可以包含字母、数…...
开源数据采集和跟踪系统:助力营销决策的关键工具
开源数据采集和跟踪系统:助力营销决策的关键工具 在现代营销中,数据是最重要的资产之一。了解用户行为、优化广告效果、提升转化率,这一切都离不开精准的数据分析。为了帮助商家更好地掌握这些数据,市场上出现了许多开源的数据采…...
Luminar Neo for Mac/Win:创新AI图像编辑软件的强大功能
Luminar Neo,这款由Skylum公司倾力打造的图像编辑软件,为Mac和Windows用户带来了前所未有的创作体验与编辑便利。作为一款融合了先进AI技术的图像处理工具,Luminar Neo以其独特的功能和高效的操作流程,成为了摄影师、设计师及摄影…...
Mac平台M1PRO芯片MiniCPM-V-2.6网页部署跑通
Mac平台M1PRO芯片MiniCPM-V-2.6网页部署跑通 契机 ⚙ 2.6的小钢炮可以输入视频了,我必须拉到本地跑跑。主要解决2.6版本默认绑定flash_atten问题,pip install flash_attn也无法安装,因为强制依赖cuda。主要解决的就是这个问题,还…...
MyBatis:Maven,Git,TortoiseGit,Gradle
1,Maven Maven是一个非常优秀的项目管理工具,采用一种“约定优于配置(CoC)”的策略来管理项目。使用Maven不仅可以把源代码构建成可发布的项目(包括编译、打包、测试和分发),还可以生成报告、生…...
获取链表中间位置的两种方法方法
方法一: 我们可以计算链表节点的数量,然后遍历链表找到前半部分的尾节点。 方法二: 我们也可以使用快慢指针在一次遍历中找到:慢指针一次走一步,快指针一次走两步,快慢指针同时出发。当快指针移动到链表的末尾时&am…...
网站建设项目团队/网络营销案例分析论文
删除 Microsoft SQL Server 2000 前应考虑的事项 删除 SQL Server 的步骤 删除 SQL Server 的特定实例 删除 SQL Server 的所有已知实例 删除 SQL Server 的默认实例 删除 SQL Server 的命名实例 如何包含全文检索删除 重新安装 SQL Server 前删除临时文件夹中的内容 参考 这篇…...
wordpress设置字体大小/目前最新推广平台
勒索已经成为黑客们的喜闻乐见的致富方式。 有调查显示,“勒索收入”已经占据了黑帽黑客经济来源的主要部分。对于黑客来说,进行一次勒索,只需要三步: 1、利用社工手段搞到被害者的信息 2、有针对性地释放一只木马,锁定…...
湘潭外包网络推广公司/seo推广是什么意思
多线程 当我们写的爬虫是单线程的时候,一旦到一个地方卡的不动了,那就永远的等下去吧,我们可以使用多线程来改变这个问题。 爬虫使用多线程来处理网络请求,使用线程来处理URL队列中的url,然后将url返回的结果保存再另…...
成都住建局官网登陆/上海seo招聘
现实的企业中,对于消息通信的应用一直都非常的火热,而且在J2EE的企业应用中扮演着特殊的角色,所以对于它研究是非常有必要的。 上篇博文深入浅出JMS(一)–JMS基本概念,我们介绍了消息通信的规范JMS,我们这篇博文介绍一…...
网站建设服务哪家便宜/湖南广告优化
把瞬间服务器的请求处理换成异步处理,缓解服务器的压力,实现数据顺序排列获取。本文主要和大家分享php和redis如何实现消息队列,希望能帮助到大家。 redis实现消息队列步骤如下: 1).redis函数rpush,lpop 2࿰…...
公司网址怎么查询/河南搜索引擎优化
这个东西实际上慕课的艾伦大大先写的。 然后别人推荐给我,偶一直收藏着,然后偶再推荐给偶的队友们,然后呢,这帮货就懒得都不肯去看。。。 接着今天受伤在家就提出来了一点东西放在我博客顶上。。。 然后艾伦的原文呢在这里。http:…...