
LeetCode刷题
文章平均质量分 53
兔兔爱学习兔兔爱学习
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
啥叫动量因子
动量因子(Momentum Factor)是一种广泛应用于金融市场的量化投资策略,它基于资产过去的表现来预测未来的价格走势。动量因子通常计算一段时间内资产价格的相对强弱,假设“强者恒强、弱者恒弱”,即过去表现较好的资产在未来也会继续表现良好。下面是一段使用 Python 和 Pandas 库实现动量因子的代码示例。这段代码将计算每个时间点上资产的动量值,并根据这些值构建一个动量因子。原创 2025-01-08 17:30:49 · 639 阅读 · 0 评论 -
leetcode219. Contains Duplicate II
给你一个整数数组 nums 和一个整数 k ,判断数组中是否存在两个 不同的索引 i 和 j ,满足 nums[i] == nums[j] 且 abs(i - j) <= k。如果存在,返回 true;否则,返回 false。我们可以从前往后遍历 nums,同时使用 Set 记录遍历当前滑窗内出现过的元素。重复上述过程,若整个 nums 处理完后仍未找到,返回 False。整理题意:是否存在长度不超过的 k+1 窗口,窗口内有相同元素。滑动窗口 + 哈希表。原创 2024-11-18 11:37:38 · 306 阅读 · 0 评论 -
leetcode217. Contains Duplicate
给你一个整数数组 nums。如果任一值在数组中出现 至少两次 ,返回 true;如果数组中每个元素互不相同,返回 false。#set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。方法2:先排序,然后判断相邻的两个元素是否相等,如果相等则说明存在重复的元素。方法1:利用set一行解决。原创 2024-11-18 11:30:24 · 378 阅读 · 0 评论 -
leetcode1254. Number of Closed Islands
【代码】leetcode1254. Number of Closed Islands。原创 2024-11-12 20:42:15 · 341 阅读 · 0 评论 -
leetcode1020. Number of Enclaves
【代码】leetcode1020. Number of Enclaves。原创 2024-11-12 20:36:55 · 671 阅读 · 0 评论 -
leetcode417. Pacific Atlantic Water Flow
thumbnail?然后继续分析,这道题是要寻找一个坐标既能够到达太平洋也能到达大西洋,但是这个过程一般不是一次深度搜索就能够完成的,所以我们从各边界开始逆流进行搜索。给定一个 m x n 的整数矩阵 heights , heights[r][c] 表示坐标 (r, c) 上单元格 高于海平面的高度。返回网格坐标 result 的 2D 列表 ,其中 result[i] = [ri, ci] 表示雨水从单元格 (ri, ci) 流动 既可流向太平洋也可流向大西洋。水可以从海洋附近的任何单元格流入海洋。原创 2024-11-12 20:30:18 · 401 阅读 · 0 评论 -
leetcode148. Sort List
给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表。输入:head = [-1,5,3,4,0]输入:head = [4,2,1,3]解答二:归并排序(从底至顶直接合并)输出:[-1,0,3,4,5]解答一:归并排序(递归法)输出:[1,2,3,4]输入:head = []原创 2024-11-10 21:31:24 · 354 阅读 · 0 评论 -
leetcode21. Merge Two Sorted Lists
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。原创 2024-11-10 21:20:41 · 695 阅读 · 0 评论 -
leetcode147. Insertion Sort List
思路:先找个排头dummy,然后依次从head节点放入dummy,只需要依次dummy现有节点比较,插入其中。给定单个链表的头 head ,使用 插入排序 对链表进行排序,并返回 排序后链表的头。原创 2024-11-10 21:15:35 · 180 阅读 · 0 评论 -
leetcode61. Rotate List
当 fast.next 为空时,fast 指向链表最后一个节点,slow 指向倒数第 k + 1 个节点。# 此时 slow 和 fast 之间的距离是 k;fast 指向第 k+1 个节点。给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。# 让倒数第 k + 1 个节点 和 倒数第 k 个节点断开。# newHead 是倒数第 k 个节点,即新链表的头。# 让 fast 先向后走 k 步。# 让最后一个节点指向原始链表的头。原创 2024-11-10 17:07:58 · 450 阅读 · 0 评论 -
leetcode138. Copy List with Random Pointer
深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 next 指针和 random 指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。复制链表中的指针都不应指向原链表中的节点。给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。用一个由 n 个节点组成的链表来表示输入/输出中的链表。你的代码 只 接受原链表的头节点 head 作为传入参数。原创 2024-11-10 17:06:31 · 283 阅读 · 0 评论 -
leetcode430. Flatten a Multilevel Doubly Linked List
你会得到一个双链表,其中包含的节点有一个下一个指针、一个前一个指针和一个额外的 子指针。这个子指针可能指向一个单独的双向链表,也包含这些特殊的节点。这些子列表可以有一个或多个自己的子列表,以此类推,以生成如下面的示例所示的 多层数据结构。让 curr 是一个带有子列表的节点。子列表中的节点应该出现在扁平化列表中的 curr 之后 和 curr.next 之前。输入:head = [1,2,3,4,5,6,null,null,null,7,8,9,10,null,null,11,12]原创 2024-11-10 17:03:53 · 574 阅读 · 0 评论 -
leetcode234. Palindrome Linked List
执行第二步的最佳方法取决于你使用的语言。我们在起点放置一个指针,在结尾放置一个指针,每一次迭代判断两个指针指向的元素是否相同,若不同,返回 false;每次迭代向数组添加 currentNode.val,并更新 currentNode = currentNode.next,当 currentNode = null 时停止循环。在编码的过程中,注意我们比较的是节点值的大小,而不是节点本身。正确的比较方式是:node_1.val == node_2.val,而 node_1 == node_2 是错误的。原创 2024-11-10 17:00:32 · 289 阅读 · 0 评论 -
leetcode328. Odd Even Linked List
给定单链表的头节点 head ,将所有索引为奇数的节点和索引为偶数的节点分别组合在一起,然后返回重新排序的列表。你必须在 O(1) 的额外空间复杂度和 O(n) 的时间复杂度下解决这个问题。第一个节点的索引被认为是 奇数 , 第二个节点的索引为 偶数 ,以此类推。请注意,偶数组和奇数组内部的相对顺序应该与输入时保持一致。原创 2024-11-10 16:49:13 · 334 阅读 · 0 评论 -
leetcode203. Remove Linked List Elements
从后往前把val符合的节点进行删除, 并重新把链表连接起来。递归程序会先一路遍历来到节点尾部。通过递归的方法去删除节点。原创 2024-11-10 16:43:53 · 295 阅读 · 0 评论 -
leetcode25. Reverse Nodes in k-Group
k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。转载 2024-11-10 16:24:56 · 339 阅读 · 0 评论 -
92. Reverse Linked List II
给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表。输入:head = [1,2,3,4,5], left = 2, right = 4。输出:[1,4,3,2,5]原创 2024-11-10 16:20:49 · 160 阅读 · 0 评论 -
leetcode206. Reverse Linked List
考虑使用递归法遍历链表,当越过尾节点后终止递归,在回溯时修改各节点的 next 引用指向。给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]原创 2024-11-10 16:16:35 · 298 阅读 · 0 评论 -
leetcode82. 删除排序链表中的重复元素 II
给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字。返回 已排序的链表。原创 2024-11-10 15:55:16 · 276 阅读 · 0 评论 -
leetcode83. Remove Duplicates from Sorted List
给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次。返回 已排序的链表。原创 2024-11-10 15:36:20 · 600 阅读 · 0 评论 -
leetcode707. Design Linked List
单链表中的节点应该具备两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果是双向链表,则还需要属性 prev 以指示链表中的上一个节点。// 链表变为 1->2->3。// 现在,链表变为 1->3。你可以选择使用单链表或者双链表,设计并实现自己的链表。原创 2024-11-10 15:22:14 · 436 阅读 · 0 评论 -
leetcode138. Copy List with Random Pointer
新节点的 next 指针和 random 指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。的拼接链表,如此便可在访问原节点的 random 指向节点的同时找到新对应新节点的 random 指向节点。利用哈希表的查询特点,考虑构建 原链表节点 和 新链表对应节点 的键值对映射关系,再遍历构建新链表各节点的 next 和 random 引用指向即可。给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。原创 2024-11-05 17:38:40 · 895 阅读 · 0 评论 -
leetcode234. 回文链表
而在其他语言中,就没有那么简单。我们在起点放置一个指针,在结尾放置一个指针,每一次迭代判断两个指针指向的元素是否相同,若不同,返回 false;每次迭代向数组添加 currentNode.val,并更新 currentNode = currentNode.next,当 currentNode = null 时停止循环。在编码的过程中,注意我们比较的是节点值的大小,而不是节点本身。正确的比较方式是:node_1.val == node_2.val,而 node_1 == node_2 是错误的。原创 2024-11-05 17:22:15 · 361 阅读 · 0 评论 -
leetcode328. Odd Even Linked List
记录偶数索引节点链表头节点 evenList,用于之后的拼接;【奇数索引节点的头节点就是 head,不需要在额外记录了】给定单链表的头节点 head ,将所有索引为奇数的节点和索引为偶数的节点分别组合在一起,然后返回重新排序的列表。初始化奇数索引节点链表oddList初始化为头节点,偶数索引节点链表evenList初始化为次节点;如果是空链表,evenList 的初始节点就不存在,因此特殊处理,直接返回;第一个节点的索引被认为是 奇数 , 第二个节点的索引为 偶数 ,以此类推。更新奇偶索引链表的节点;原创 2024-11-05 16:27:01 · 547 阅读 · 0 评论 -
leetcode203. Remove Linked List Elements
答:删除下一个节点后,cur.next 的节点值也可能等于 val,也需要删除,如果直接更新 cur 为 cur.next,就漏删了节点。如果删除了 head,那么最后返回的是不是原链表的头节点?如果头节点可能被删除,那么要在头节点之前添加一个哨兵节点,这样我们无需特判头节点被删除的情况,从而简化代码逻辑。例如链表 1→2→3,要想删除 2,必须在节点 1 处操作,也就是把节点 1 的 next 更新为节点 3。或者说,根据套路 1,要想删除头节点,必须在头节点的前一个节点操作,所以要添加一个哨兵节点。原创 2024-11-04 16:26:24 · 514 阅读 · 0 评论 -
leetcode206. Reverse Linked List
调用并返回 recur(head, null)。传入 null 是因为反转链表后, head 节点指向 null;考虑使用递归法遍历链表,当越过尾节点后终止递归,在回溯时修改各节点的 next 引用指向。给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。考虑遍历链表,并在访问各节点时修改 next 引用指向。方法一:迭代(双指针)原创 2024-11-04 16:11:14 · 277 阅读 · 0 评论 -
leetcode707. Design Linked List
单链表中的节点应该具备两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果是双向链表,则还需要属性 prev 以指示链表中的上一个节点。假设链表中的所有节点下标从 0 开始。你可以选择使用单链表或者双链表,设计并实现自己的链表。原创 2024-11-04 15:48:18 · 360 阅读 · 0 评论 -
链表基础知识
个链节点,然后直接更改第。个链节点之前插入值为。个链节点之后插入值为。个链节点之前插入值为。原创 2024-11-04 15:18:46 · 834 阅读 · 0 评论 -
leetcode713. Subarray Product Less Than K
注意,对于某一个值,我们只关注以它为最右边元素的子数组。这样可以减少重复讨论的麻烦。思路:使用滑动窗口的思路,找取每一个符合条件的小窗,统计其内部子数组数量。原创 2024-11-01 16:51:47 · 415 阅读 · 0 评论 -
leetcode209. Minimum Size Subarray Sum
思路:思路其实很简单,就是维护一个动态的滑动窗口,我感觉大家都会这么想吧。看了题解后,发现似乎官方都不是一开始用的滑动窗口!我们可以通过一个窗口来维持里面的数的和始终小于target,不断往里面增加数字,大于等于target时,就需要移动左边的指针,不断缩减,因为我们的目标是求得最短的,所以要是的窗口的区间足够小。原创 2024-11-01 15:19:00 · 310 阅读 · 0 评论 -
leetcode3. Longest Substring Without Repeating Characters
【代码】leetcode3. Longest Substring Without Repeating Characters。原创 2024-11-01 14:41:03 · 305 阅读 · 0 评论 -
leetcode1343. Number of Sub-arrays of Size K and Average Greater than or Equal to Threshold
【代码】leetcode1343. Number of Sub-arrays of Size K and Average Greater than or Equal to Threshold。原创 2024-10-31 14:57:52 · 297 阅读 · 0 评论 -
leetcode925. Long Pressed Name
【代码】leetcode925. Long Pressed Name。原创 2024-10-31 10:19:39 · 330 阅读 · 0 评论 -
leetcode80. Remove Duplicates from Sorted Array II
【代码】leetcode80. Remove Duplicates from Sorted Array II。原创 2024-10-30 17:45:35 · 449 阅读 · 0 评论 -
leetcode27. Remove Element
【代码】leetcode27. Remove Element。原创 2024-10-30 17:00:52 · 517 阅读 · 0 评论 -
leetcode15. 3Sum
【代码】leetcode15. 3Sum。原创 2024-10-30 16:11:31 · 260 阅读 · 0 评论 -
leetcode345. Reverse Vowels of a String
【代码】leetcode345. Reverse Vowels of a String。原创 2024-10-30 15:21:55 · 292 阅读 · 0 评论 -
leetcode344. Reverse String
【代码】leetcode344. Reverse String。原创 2024-10-30 14:13:12 · 278 阅读 · 0 评论 -
leetcode349. Intersection of Two Arrays
【代码】leetcode349. Intersection of Two Arrays。原创 2024-10-30 09:42:23 · 233 阅读 · 0 评论 -
leetcode349. Intersection of Two Arrays
【代码】leetcode349. Intersection of Two Arrays。原创 2024-10-29 17:08:23 · 223 阅读 · 0 评论