- 博客(15)
- 收藏
- 关注
原创 leetcode 206. Reverse Linked List反转链表
1. 没有处理head->next, 未将头节点的next pointer指向nullptr,使得链表形成循环。2. 最后一个节点实际上已被正确处理但是由于没想清楚,重复处理了最后一个节点。链表反转是一个常见的算法题,但是容易出现一些小问题。
2025-02-10 23:45:56
107
原创 LeetCode 82: 删除排序链表中的重复元素 II
给定一个已排序的链表的头节点head,要求删除所有重复的节点(所有出现重复的节点全部删除),只保留原链表中出现过一次的节点。返回已排序的链表。
2025-02-09 10:22:48
107
原创 leetcode 707. Design Linked List设计链表
1. 使用 struct 而不是 class,因为链表节点主要是承载数据,不需要封装。3. 使用初始化列表,良好的 C++ 编程习惯。2. 提供两个构造函数,方便节点创建。
2025-02-09 09:38:51
193
原创 leetcode 209. 最小连续子数组和 Minimum Size Subarray Sum
在这道题中,目标是找到数组中和大于等于 target 的最小连续子数组的长度。最直观的暴力解法是枚举每个子数组,但时间复杂度较高。于是,我们可以采用滑动窗口(Sliding Window)的思想,将时间复杂度优化到 O(n)。
2025-02-07 04:57:30
320
原创 leetcode 31 Next Permutation —— 找到字典序的下一个排列
给定一个整数数组,将它看作一个排列,求出其字典序的下一个排列。如果不存在下一个排列,则将数组重排为最小排列(升序排列)。
2025-02-07 01:33:20
218
原创 Leetcode27 Remove Element移除元素
通过这种方式,最终慢指针的索引就代表了新数组的长度,同时数组的前 slow 个位置存放的即是所有不等于。删除元素后,数组前 k 个位置的元素即为新数组内容,不要求保持原有顺序。的元素删除,并返回剩余不等于。,要求将数组中所有等于。
2025-02-07 00:12:11
189
原创 leetcode 704. Binary Search二分查找
二分查找算法详解:从理论到实践二分查找虽然概念简单,但实现时的细节需要进行思考,不要想当然。正确处理循环条件、中间位置计算和指针更新是写出无bug代码的关键。
2025-02-06 23:40:03
299
原创 leetcode stack and queue, leetcode 347/150/239
在 C++ 中,优先队列(priority queue)默认是最大堆,因此我们需要自定义比较函数,将其转换为最小堆。如果优先队列的大小超过 k,则弹出堆顶元素,以确保优先队列中始终只包含频率最高的 k 个元素。遍历 unordered_map 中的频率对,每次将当前元素的频率推入优先队列中。给定一个整数数组 nums 和一个整数 k,返回 k 个出现频率最高的元素。创建一个最小堆(min heap),用于存储频率最高的 k 个元素。将最小堆中的元素提取出来,放入结果向量中并返回。
2024-07-31 22:45:54
763
原创 day3_linked_list related(leetcode 206/207/707)
通过这道题的练习,复习了单链表的基本操作。但在代码实现过程中,还是有些小细节需要注意,比如在插入和删除操作时,需要先找到对应位置的前一个节点。另外在各种操作前,需要判断链表是否为空以及索引是否有效。总的来说,对链表的操作还不够熟练,还需要多加练习。接下来打算继续练习一些链表相关的题目,如链表的反转、合并等,以加深对链表的理解和应用。同时还要注意培养编码的耐心,养成仔细分析问题的习惯。i++) {if (
2024-04-21 02:49:17
541
1
原创 day2_螺旋矩阵II(leetcode59)
在尝试解决这个问题时,我最初的想法是寻找一个整体填充每个值的模式,可以通过一些技巧来更新矩阵。从这个经验可以学到,如果没有一个巧妙的思路,就应该尽可能先使用能想到的暴力解法(brute force)来尝试解决问题,然后再思考可能的优化空间。在实现过程中,需要特别注意当 n 为奇数时,如何正确处理矩阵中心的值。我在实现中没有正确的处理中心值,并且判断条件也没有正确设置循环终止条件,导致进入了死循环。为了避免这种情况,我们需要多尝试画图测试几个实际的例子,然后总结归纳出具体的实现方法。
2024-04-18 10:22:06
566
1
原创 day2_长度最小的子数组(leetcode207)
如果不存在符合条件的子数组,返回。是该条件下的长度最小的子数组。找出该数组中满足其总和大于等于。个正整数的数组和一个正整数。
2024-04-18 10:12:20
921
1
原创 day2_有序数组的平方(leetcode977)
由于初始数组按非递减顺序排序,因此最左侧和最右侧具有最大的正数和负数的绝对值。你可以初始化两个指针分别指向最左侧和最右侧,不断比较它们的值,并将其插入到解决方案向量中。需要注意的是,插入的顺序需要从末尾到开头,因为题目要求返回的结果也要按非递减顺序排列。的使用是不必要的,可以直接从末尾到开头将元素的平方值插入到。的末尾到开头遍历,将每个元素的平方值依次插入到结果向量。排序后,数组变为 [0,1,9,16,100]的绝对值大小,将较大的值存储在临时向量。,分别指向数组的开头和结尾。组成的新数组,要求也按。
2024-04-18 09:59:05
379
1
原创 Day1_移除元素(remove element)_leetcode27
前情提要:在养成写一些博客的习惯,同时练习英文表述和分析问题的能力,所以内容均为英文。
2024-04-17 05:54:22
852
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人