2025年4月20日
摘要: 题目描述 思路一:set 对于交集问题,我们很自然的会考虑到收集元素时的唯一性问题,那么自然也会想到数据结构set,它与数学中集合的概念相同,对于存储的元素去重。所以我们可以使用set,这里为了实现效率,可以选择unordered_set,它是由哈希函数映射实现的,查询效率高。我们先将第一个数组赋给 阅读全文
posted @ 2025-04-20 11:09 sakura430 阅读(10) 评论(0) 推荐(0)
  2025年4月19日
摘要: 题目描述 思路 我们要判断两个字符串是否为异位词,即是要判断这两个字符串中是否出现了相同的字母且对应了相同的出现次数。这里我们可以采用哈希的想法,即以字符串的字母为“值”来映射位序“键”。由于题目中已经说明字符串只会出现小写字母,所以总共可能出现的字母数为26。我们定义一个长度为26的整型数组has 阅读全文
posted @ 2025-04-19 17:59 sakura430 阅读(12) 评论(0) 推荐(0)
  2025年4月18日
摘要: 题目描述 思路:快慢指针 关于检测链表是否有环的问题我们可以将其抽象为一道追击问题。我们设置两个指针,一个快指针,一个慢指针。快指针每一次移动两个步进,慢指针每一次移动一个步进,相当于快指针相对于慢指针每一次移动一个步进,所以快指针一定能够追上慢指针与其相遇。我们假设相遇的位置为meet,环的入口位 阅读全文
posted @ 2025-04-18 20:56 sakura430 阅读(11) 评论(0) 推荐(0)
  2025年4月16日
摘要: 题目描述 思路一:算正序位置删除 链表的倒数第N个元素即是正序(len-n+1),(我们这里假设链表的长度为len),所以我们可以将这题的思路由找倒数转表为找正数的位置。接下来的整个操作就与普通的删除链表节点没有什么大差异。 代码如下: ListNode* removeNthFromEnd(List 阅读全文
posted @ 2025-04-16 14:19 sakura430 阅读(8) 评论(0) 推荐(0)
  2025年4月15日
摘要: 题目描述 思路: 这道题的关键就在于我们在交换两个节点的时候如何正确的保留下一组要处理的节点的位置,不要使链表断开导致丢失陷入死循环或未知情况。处理时我们依旧采用虚拟头节点的操作方式从而统一整个链表的操作流程,这样就可以不用单独考虑头节点的处理情况。在我们首先创建虚拟头节点dummyhead,使其指 阅读全文
posted @ 2025-04-15 22:36 sakura430 阅读(11) 评论(0) 推荐(0)
  2025年4月13日
摘要: 问题描述 思路一:双指针法 对于要反转的链表,我们为了便于操作,可以设置两个指针:pre以及cur,见词知意,这里的pre指针即是cur的前驱指针(当然,反转过后它就是后驱指针),初始时为nullptr,而cur就是当前指针,初始时为head。这里我们在cur存在的判断条件下循环,在整个过程中,每一 阅读全文
posted @ 2025-04-13 20:57 sakura430 阅读(20) 评论(0) 推荐(0)
摘要: 题目描述 思路 整体的思路的话就是增删查三大件,是很常规的一道题。问题在于在leetcode的环境下要自己在类中定义链表结构体。这里比较坑,因为之前的题目基本函数实现所需要的前置条件初始模板都已给出,所以这里可能会让人很疑惑,不知从何下手。由于本题总共涉及到五个函数,所以接下来对链表的初始化以及五个 阅读全文
posted @ 2025-04-13 18:09 sakura430 阅读(18) 评论(0) 推荐(0)
  2025年4月9日
摘要: 题目描述 思路: 在这道题中,我们的目标是要求得行列中划分部分的最小差值。我们的思路即在赋值的过程中对整个矩阵求和,这样我们便得到了整体的和。随后,我们可以通过for循环实现求纵向与横向的总和。最后,到了关键的一步,我们之前获得了整体的和sum,随后获得了行和与列和,这是我们可以有“总和 - 部分” 阅读全文
posted @ 2025-04-09 21:37 sakura430 阅读(20) 评论(0) 推荐(0)
  2025年4月8日
摘要: 题目描述 思路 这道题目求区间和,如果在数据规模很低的情况下,我们可以直接for循环遍历所属区间然后求和返回即可,但是考虑到在大规模数据引入的情况下,如果区间的范围很大,则会有比较差的性能表现,所以我们主要介绍采用前缀和求解的方法。前缀和即随着位置后移不断累加当前即之前位置元素之和得到的对应位置的和 阅读全文
posted @ 2025-04-08 20:13 sakura430 阅读(16) 评论(0) 推荐(0)
  2025年4月7日
摘要: 题目描述 思路一:无虚拟头节点 首先,由于我们是非虚拟头节点解法,我们第一步就应该处理head -> val == val这样的情况,这里我们在设置判断条件时要确保head非空,并且应该采取循环结构,从而应对head更新后依旧val域等于val的情况。处理完head后,我们创建一个临时指针cur,赋 阅读全文
posted @ 2025-04-07 22:58 sakura430 阅读(20) 评论(0) 推荐(0)