LeetCode-Python
文章平均质量分 74
古希腊掌管学习的神
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[LeetCode-Python版]动态规划——0-1背包和完全背包问题总结
0-1背包:有n个物品,第i个物品的体积为wi,价值为vi,每个物品至多选一个,求体积和不超过 capacity 时的最大价值和dfsicmaxdfsi−1cdfsi−1c−wi])vi。原创 2025-01-13 13:31:22 · 1280 阅读 · 0 评论 -
[LeetCode-Python版]回溯——三种题目类型(子集型/排列型/组合型)
回溯算法是一种通过探索所有可能的候选解来找出所有的解的算法。如果候选解被确认为一个解(有可能是唯一的),回溯算法会记录下来。在一些问题中,回溯算法可以用来生成问题的解空间树,然后通过深度优先搜索策略进行遍历,以找到所有可能的解或最优解。原创 2025-01-10 12:55:06 · 1074 阅读 · 0 评论 -
[LeetCode-Python版]Hot100(2/100)——128. 最长连续序列
给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为 O(n) 的算法解决此问题。原创 2025-01-06 00:27:50 · 266 阅读 · 0 评论 -
[LeetCode-Python版]Hot100(1/100)——49. 字母异位词分组
给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。字母异位词 是由重新排列源单词的所有字母得到的一个新单词。原创 2025-01-05 23:54:59 · 325 阅读 · 0 评论 -
[LeetCode-Python版]前缀和——974. 和可被 K 整除的子数组
给定一个整数数组 nums 和一个整数 k ,返回其中元素之和可被 k 整除的非空 子数组 的数目。子数组 是数组中 连续 的部分。原创 2025-01-03 14:23:47 · 370 阅读 · 0 评论 -
[LeetCode-Python版]链表——25. K 个一组翻转链表
给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。原创 2024-12-29 23:04:46 · 436 阅读 · 0 评论 -
[LeetCode-Python版]链表—— 92. 反转链表 II
给你单链表的头指针 head 和两个整数 left 和 right ,其中 left原创 2024-12-29 22:36:17 · 350 阅读 · 0 评论 -
[LeetCode-Python版]二分查找——33. 搜索旋转排序数组
整数数组 nums 按升序排列,数组中的值 互不相同。在传递给函数之前,nums 在预先未知的某个下标 k(0原创 2024-12-29 17:57:12 · 376 阅读 · 0 评论 -
[LeetCode-Python版]二分查找——153. 寻找旋转排序数组中的最小值
已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums = [0,1,2,4,5,6,7] 在变化后可能得到:若旋转 4 次,则可以得到 [4,5,6,7,0,1,2]若旋转 7 次,则可以得到 [0,1,2,4,5,6,7]注意,数组 [a[0], a[1], a[2], …, a[n-1]] 旋转一次 的结果为数组 [a[n-1], a[0], a[1], a[2], …, a[n-2]]。原创 2024-12-28 22:57:14 · 451 阅读 · 0 评论 -
[LeetCode-Python版]二分查找——162. 寻找峰值
峰值元素是指其值严格大于左右相邻值的元素。给你一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。你可以假设 nums[-1] = nums[n] = -∞。你必须实现时间复杂度为 O(log n) 的算法来解决此问题。原创 2024-12-28 22:29:30 · 275 阅读 · 0 评论 -
[LeetCode-Python版]二分查找——H 指数 II
给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数,citations 已经按照 升序排列。计算并返回该研究者的 h 指数。h 指数的定义:h 代表“高引用次数”(high citations),一名科研人员的 h 指数是指他(她)的 (n 篇论文中)至少 有 h 篇论文分别被引用了至少 h 次。请你设计并实现对数时间复杂度的算法解决此问题。原创 2024-12-27 14:18:28 · 340 阅读 · 0 评论 -
[LeetCode-Python版]二分查找——34. 在排序数组中查找元素的第一个和最后一个位置
给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。原创 2024-12-27 13:29:47 · 344 阅读 · 0 评论 -
[LeetCode-Python版]同向双指针——2779. 数组的最大美丽值
给你一个下标从 0 开始的整数数组 nums 和一个 非负 整数 k。在一步操作中,你可以执行下述指令:在范围 [0, nums.length - 1] 中选择一个 此前没有选过 的下标 i。将 nums[i] 替换为范围 [nums[i] - k, nums[i] + k] 内的任一整数。数组的 美丽值 定义为数组中由相等元素组成的最长子序列的长度。对数组 nums 执行上述操作任意次后,返回数组可能取得的 最大 美丽值。注意:你 只 能对每个下标执行 一次 此操作。原创 2024-12-26 15:42:04 · 1149 阅读 · 0 评论 -
[LeetCode-Python版]同向双指针——2730. 找到最长的半重复子字符串
给你一个下标从 0 开始的字符串 s ,这个字符串只包含 0 到 9 的数字字符。如果一个字符串 t 中至多有一对相邻字符是相等的,那么称这个字符串 t 是 半重复的。例如,“0010” 、“002020” 、“0123” 、“2002” 和 “54944” 是半重复字符串,而 “00101022” (相邻的相同数字对是 00 和 22)和 “1101234883” (相邻的相同数字对是 11 和 88)不是半重复字符串。请你返回 s 中最长 半重复子字符串的长度。原创 2024-12-26 15:23:11 · 343 阅读 · 0 评论 -
[LeetCode-Python版]同向双指针——3. 无重复字符的最长子串
给定一个字符串 s ,请你找出其中不含有重复字符的最长子串的长度。原创 2024-12-26 14:36:56 · 297 阅读 · 0 评论 -
[LeetCode-Python版]同向双指针——713. 乘积小于 K 的子数组
给你一个整数数组 nums 和一个整数 k ,请你返回子数组内所有元素的乘积严格小于 k 的连续子数组的数目。原创 2024-12-26 14:19:16 · 238 阅读 · 0 评论 -
[LeetCode-Python版]同向双指针——209. 长度最小的子数组
给定一个含有 n 个正整数的数组和一个正整数 target。找出该数组中满足其总和大于等于 target 的长度最小的子数组numslnumsl1...numsr−1numsr,并返回其长度。如果不存在符合条件的子数组,返回 0。原创 2024-12-26 13:50:21 · 768 阅读 · 0 评论 -
[LeetCode-Python版]相向双指针——125. 验证回文串
如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串。字母和数字都属于字母数字字符。给你一个字符串 s,如果它是 回文串 ,返回 true;否则,返回 false。原创 2024-12-25 21:43:06 · 285 阅读 · 0 评论 -
[LeetCode-Python版]相向双指针——633. 平方数之和
给定一个非负整数 c ,判断是否存在两个整数 a 和 b,使得 a^2 + b^2 = c。原创 2024-12-25 21:38:48 · 722 阅读 · 0 评论 -
[LeetCode-Python版]相向双指针——42. 接雨水
给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。原创 2024-12-25 21:20:31 · 662 阅读 · 0 评论 -
[LeetCode-Python版]相向双指针——11. 盛最多水的容器
给定一个长度为 n 的整数数组 height。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i])。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。说明:不能倾斜容器。原创 2024-12-25 20:37:16 · 371 阅读 · 0 评论 -
[LeetCode-Python版]相向双指针——611. 有效三角形的个数
给定一个包含非负整数的数组 nums ,返回其中可以组成三角形三条边的三元组个数。原创 2024-12-24 17:58:18 · 461 阅读 · 0 评论 -
[LeetCode-Python版]相向双指针——2824. 统计和小于目标的下标对数目
给你一个下标从 0 开始长度为 n 的整数数组 nums 和一个整数 target ,请你返回满足 0原创 2024-12-24 17:18:13 · 1010 阅读 · 0 评论 -
[LeetCode-Python版]相向双指针——18. 四数之和
给你一个由 n 个整数组成的数组 nums ,和一个目标值 target。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应,则认为两个四元组重复):a、b、c 和 d 互不相同你可以按 任意顺序 返回答案。原创 2024-12-24 17:02:49 · 969 阅读 · 0 评论 -
[LeetCode-Python版]相向双指针——16. 最接近的三数之和
给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数,使它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在恰好一个解。原创 2024-12-24 16:40:33 · 410 阅读 · 0 评论 -
[LeetCode-Python版]相向双指针——167. 两数之和 II - 输入有序数组 & 15. 三数之和
给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列 ,请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index1] 和 numbers[index2] ,则 1原创 2024-12-24 16:18:15 · 1045 阅读 · 0 评论 -
[LeetCode-Python版] 定长滑动窗口8——2461. 长度为 K 子数组中的最大和
给你一个整数数组 nums 和一个整数 k。请你从 nums 中满足下述条件的全部子数组中找出最大子数组和:子数组的长度是 k,且子数组中的所有元素 各不相同。返回满足题面要求的最大子数组和。如果不存在子数组满足这些条件,返回 0。子数组 是数组中一段连续非空的元素序列。原创 2024-12-23 12:07:19 · 403 阅读 · 0 评论 -
[LeetCode-Python版] 定长滑动窗口7——1652. 拆炸弹
你有一个炸弹需要拆除,时间紧迫!你的情报员会给你一个长度为 n 的 循环 数组 code 以及一个密钥 k。为了获得正确的密码,你需要替换掉每一个数字。所有数字会 同时 被替换。如果 k > 0 ,将第 i 个数字用 接下来 k 个数字之和替换。如果 k < 0 ,将第 i 个数字用 之前 k 个数字之和替换。如果 k == 0 ,将第 i 个数字用 0 替换。原创 2024-12-23 11:24:57 · 427 阅读 · 0 评论 -
[LeetCode-Python版] 定长滑动窗口6——1297. 子串的最大出现次数
给你一个字符串 s ,请你返回满足以下条件且出现次数最大的 任意 子串的出现次数:子串中不同字母的数目必须小于等于 maxLetters。子串的长度必须大于等于 minSize 且小于等于 maxSize。原创 2024-12-23 10:58:44 · 432 阅读 · 0 评论 -
[LeetCode-Python版] 定长滑动窗口5——1423. 可获得的最大点数
几张卡牌 排成一行,每张卡牌都有一个对应的点数。点数由整数数组cardPoints给出。每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须正好拿k张卡牌。你的点数就是你拿到手中的所有卡牌的点数之和。给你一个整数数组cardPoints和整数k,请你返回可以获得的最大点数。示例 1:输入:cardPoints = [1,2,3,4,5,6,1], k = 3输出:12解释:第一次行动,不管拿哪张牌,你的点数总是 1。但是,先拿最右边的卡牌将会最大化你的可获得点数。原创 2024-12-23 09:55:45 · 404 阅读 · 0 评论 -
[LeetCode-Python版] 定长滑动窗口4——2841. 几乎唯一子数组的最大和
给你一个整数数组 nums 和两个正整数 m 和 k。请你返回 nums 中长度为 k 的 几乎唯一 子数组的 最大和 ,如果不存在几乎唯一子数组,请你返回 0如果 nums 的一个子数组有至少 m 个互不相同的元素,我们称它是 几乎唯一 子数组。子数组指的是一个数组中一段连续 非空 的元素序列。原创 2024-12-21 00:14:46 · 528 阅读 · 0 评论 -
[LeetCode-Python版] 定长滑动窗口3——1461. 检查一个字符串是否包含所有长度为 K 的二进制子串
给你一个二进制字符串 s 和一个整数 k。如果所有长度为 k 的二进制字符串都是 s 的子串,请返回 true ,否则请返回 false。原创 2024-12-20 23:21:28 · 972 阅读 · 0 评论 -
[LeetCode-Python版] 定长滑动窗口2—— 1052. 爱生气的书店老板
有一个书店老板,他的书店开了 n 分钟。每分钟都有一些顾客进入这家商店。给定一个长度为 n 的整数数组customers,其中是在第i分钟开始时进入商店的顾客数量,所有这些顾客在第i分钟结束后离开。在某些分钟内,书店老板会生气。如果书店老板在第i分钟生气,那么,否则。当书店老板生气时,那一分钟的顾客就会不满意,若老板不生气则顾客是满意的。书店老板知道一个秘密技巧,能抑制自己的情绪,可以让自己连续minutes分钟不生气,但却只能使用一次。请你返回 这一天营业下来,最多有多少客户能够感到满意。原创 2024-12-20 22:37:21 · 421 阅读 · 0 评论 -
[LeetCode-Python版] 定长滑动窗口1(1456 / 643 / 1343 / 2090 / 2379)
把问题拆解成三步:入-更新-出。原创 2024-12-19 13:45:55 · 1100 阅读 · 0 评论 -
[LeetCode-Python版]142. 环形链表 II
给定一个链表的头节点 head ,返回链表开始入环的第一个节点。如果链表无环,则返回 null。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。不允许修改 链表。原创 2024-12-18 16:22:05 · 428 阅读 · 0 评论 -
[LeetCode-Python版] 876. 链表的中间结点
给你单链表的头结点 head ,请你找出并返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。原创 2024-12-18 15:31:44 · 1073 阅读 · 0 评论 -
[LeetCode-Python版] 138. 随机链表的复制(两种解法:哈希表 / 拼接拆分)
给你一个长度为n的链表,每个节点包含一个额外增加的随机指针random,该指针可以指向链表中的任何节点或空节点。构造这个链表的 深拷贝。深拷贝应该正好由n个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的next指针和random指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。复制链表中的指针都不应指向原链表中的节点。原创 2024-12-18 13:30:46 · 685 阅读 · 0 评论 -
[LeetCode-Python版]86. 分隔链表
给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。你应当 保留 两个分区中每个节点的初始相对位置。原创 2024-12-17 15:35:35 · 537 阅读 · 0 评论 -
[LeetCode-Python版]237. 删除链表中的节点(两行搞定)
有一个单链表的 head,我们想删除它其中的一个节点 node。给你一个需要删除的节点 node,你将无法访问 第一个节点 head。原创 2024-12-17 14:41:40 · 492 阅读 · 0 评论 -
[LeetCode-Python版]206. 反转链表(迭代+递归两种解法)
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。原创 2024-12-17 14:22:52 · 637 阅读 · 0 评论
分享