- 博客(28)
- 收藏
- 关注
原创 合并两个有序链表
当其中一个链表遍历完毕后,将另一个链表的剩余部分直接连接到新链表的末尾。新链表是通过拼接给定的两个链表的所有节点组成的。当前节点的值,将较小的节点连接到新链表的末尾。指针指向合并后的链表的头结点。将两个升序链表合并为一个新的。来追踪新链表的最后一个节点。指针,即合并后的链表的头结点。使用一个虚拟头结点(
2025-03-21 20:47:39
529
原创 环形链表题解
这种方法通过两个指针,一个快指针和一个慢指针,遍历链表。如果链表中存在环,快指针最终会追上慢指针。指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数。来表示链表尾连接到链表中的位置(索引从 0 开始)。如果链表中有某个节点,可以通过连续跟踪。仅仅是为了标识链表的实际情况。要判断链表中是否有环,可以使用。),说明链表中有环,返回。,判断链表中是否有环。循环遍历链表,条件是。,说明链表没有环,返回。给你一个链表的头节点。
2025-03-13 20:40:37
475
原创 买卖股票的最佳时机
返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回。使用双重循环遍历数组,计算出最大值(时间复杂度O(n^2))设计一个算法来计算你所能获取的最大利润。为 0),直接返回利润为 0,因为没有交易可以发生。为第一天的价格,用于记录到目前为止的最低价格。用于存储到目前为止的最低价格,初始值为。的差值(即当前利润),如果这个差值大于。为 0,用于记录到目前为止的最大利润。用于存储最大利润,初始值为。的差值,如果这个差值大于。返回计算得到的最大利润。返回计算得到的最大利润。否则,计算当前价格与。
2025-03-13 20:29:26
490
原创 轮转数组题解
通过创建一个临时数组,将原数组中的元素按照旋转规则重新放置到临时数组中,最后再将临时数组中的元素复制回原数组,从而完成数组的旋转操作。:分配一个与原数组大小相同的临时数组。:直接修改原数组,满足题目要求。,计算每个元素旋转后的新位置。,将数组中的元素向右轮转。:如果数组为空或无需旋转(范围内,避免冗余旋转。旋转7次等价于旋转2次。,用于存储旋转后的结果。的内存,避免内存泄漏。:避免不必要的计算。
2025-03-12 20:29:27
413
原创 多数元素题解
摩尔投票法(Moore's Voting Algorithm)的核心思想是通过两两抵消不同的元素,最终剩下的元素就是出现次数超过一半的元素。是数组的长度,因为只需要遍历数组一次。空间复杂度为(O(1)),因为只需要常数级别的额外空间来存储候选元素和计数器。你可以假设数组是非空的,并且给定的数组总是存在多数元素。,返回其中的多数元素。:初始化为数组的第一个元素,作为首个候选多数元素。:初始化为1,表示当前候选的支持次数。中存储的就是出现次数超过一半的元素。:若当前元素与候选相同,增加计数器。
2025-03-12 19:36:19
569
原创 两数之和 II - 输入有序数组
你所设计的解决方案必须只使用常量级的额外空间。,返回两个数的下标(注意下标从 1 开始)。,请你从数组中找出满足相加之和等于目标数。如果找到满足条件的两个数,返回它们的下标。动态分配结果数组,并在使用后释放内存。:返回结果数组的长度(固定为 2)。如果设这两个数分别是。使用两个指针,一个指向数组的开头(只需要遍历数组一次,时间复杂度为。的形式返回这两个整数的下标。以长度为 2 的整数数组。),另一个指向数组的末尾(重复使用相同的元素。,返回这两个数的下标。向右移动(增加和)。向左移动(减少和)。
2025-03-11 20:14:04
449
原创 验证回文串
如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。这些函数会根据字符的 ASCII 值自动判断是否需要转换,并返回转换后的字符。使用双指针法,从字符串的两端向中间遍历,判断字符是否相等。使用双指针法,从字符串的两端向中间遍历,判断字符是否相等。自动处理非字母字符(如数字、标点符号等),无需额外判断。将过滤后的字符串中的所有字母统一转换为小写或大写。:将字符串中的所有字母统一转换为小写或大写。遍历字符串,过滤掉非字母和非数字字符。遍历字符串,过滤非字母和非数字字符。
2025-03-11 19:41:59
965
原创 罗马数字转整数
数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做。:如果一个较小的符号出现在一个较大的符号的左边,表示需要减去较小的值。对于每个字符,检查它是否小于下一个字符的值。遍历字符串时,动态判断是否需要应用减法规则。给定一个罗马数字,将其转换成整数。使用查表法将字符映射到对应的值。如果小于,则减去当前字符的值。从左到右遍历罗马数字字符串。,即为两个并列的 1。否则,加上当前字符的值。
2025-03-10 20:29:42
834
原创 检查是否所有字符出现次数相同
定义一个大小为 26 的数组,用于存储每个小写字母(:用于记录第一个非零的出现次数,初始值为。,说明这是第一个非零元素,将其值赋给。如果发现不相等的情况,返回。:检查当前字母的出现次数是否不为零。否则,检查当前字母的出现次数是否与。数组,找到第一个非零的出现次数。来存储每个小写字母的出现次数。如果所有非零元素都相等,返回。,表示所有字符的出现次数相同。,表示字符出现次数不完全相同。如果所有非零元素都相等,返回。,表示所有字符的出现次数相同。的长度,并将其存储在变量。:将对应字母的计数加 1。
2025-03-10 19:38:27
365
原创 最大连续 1 的个数
因此,需要在遍历结束后,额外检查一次。,比较两个计数器,更新最大值,重置计数器。遍历结束后,比较两个计数器,更新最大值。然而,如果数组的末尾是连续的。)来记录当前找到的最大连续。的个数,但此时不会再遇到。, 计算其中最大连续。
2025-03-07 20:29:23
264
原创 第三大的数
分别存储当前的最大值、第二大的值和第三大的值。作为初始值,确保可以处理数组中的最小值。如果不存在,则返回数组中最大的数。对于每个元素,检查是否已经存在于。,说明数组中没有第三大的数,返回。给你一个非空数组,返回此数组中。对于数组中的每个元素,依次更新。(表示最小值),以便后续更新。,说明不存在第三大的数,返回。根据当前元素的值更新。
2025-03-06 20:42:08
236
原创 删除有序数组中的重复项 II思路
不相等,说明当前元素未出现两次,将其加入新数组(即赋值给。相等时,说明当前元素已经出现了两次,跳过该元素。删除重复出现的元素,使得出现次数超过两次的元素。不超过 2,则将当前元素加入新数组(即赋值给。相等,说明当前元素已经出现了两次,跳过该元素。用于记录当前元素的重复次数,初始值为 1。如果已经出现两次,则跳过当前元素。直接在原数组上修改,不创建新数组。直接在原数组上修改,不创建新数组。指针的位置即为新数组的长度。,返回删除后数组的新长度。否则,将当前元素加入新数组。否则,将当前元素加入新数组。
2025-03-05 20:15:29
260
原创 移动零思路
核心思想:通过双指针法,将非零元素移动到数组前面,然后填充零。优点:原地操作,时间复杂度低,代码简洁。适用场景:需要原地操作数组且保持元素顺序的问题。时间复杂度两次遍历数组,时间复杂度为 O(n)O(n),其中 nn 是数组的长度。空间复杂度只使用了常数级别的额外空间,空间复杂度为 O(1)O(1)。
2025-03-05 19:19:27
387
原创 找到所有数组中消失的数字思路
利用桶计数来实现,创建一个桶数组,遍历原数组,标记出现的数字,查找缺失的数字,返回缺失的数字。的参数形式更直观,尤其是在分配数组时,直接指定元素个数和元素大小即可。:一个辅助数组,通常用于记录数据的某种状态(如是否出现、出现次数等)。:桶的大小通常与数据的范围相关。设置为缺失数字的数量,方便调用者知道结果数组的大小。的位置(缺失的数字),或者统计某个值的出现次数。分配的内存块中的值是未定义的(可能是随机值)。的位置,这些位置对应的数字就是缺失的数字。只分配内存,但不会初始化内存块中的内容。
2025-03-04 20:47:22
1408
原创 合并两个有序数组解题思路
nums1的数组在足够长,把nums2中元素追加在nums1元素末尾,在对此时的num1进行排序。使用双指针从后向前遍历两个有序数组,每次将较大的元素放入。的后面部分是空闲的(初始值为 0),从前向后合并会覆盖。中剩余的元素(如果有),最终得到一个完整的有序数组。中还有剩余元素,不需要处理,因为它们已经有序。中最后一个有效元素的索引(初始值为。中最后一个有效元素的索引(初始值为。中剩余的元素都小,直接将它们复制到。中还有未处理的元素,循环就会继续。个元素表示应合并的元素,后。中,使合并后的数组同样按。
2025-03-04 19:23:31
372
原创 两数之和代码参考
如果找到符合条件的两个数,立即返回它们的下标。如果遍历完所有可能的组合后仍未找到,返回。使用双重循环遍历数组中的每一对元素,检查它们的和是否等于。如果找到符合条件的两个数,将它们的下标存入。内层循环遍历当前元素之后的每一个元素。外层循环遍历数组中的每一个元素。整数,并返回它们的数组下标。,大小为 2 个整数的空间。,表示返回的数组大小为 2。,表示返回的数组大小为 0。分配内存来存储结果数组。,请你在该数组中找出。
2025-03-03 19:32:48
382
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人