avatar
文章
85
标签
47
分类
18
首页
归档
标签
分类
关于
很多时候不懂事
搜索
首页
归档
标签
分类
关于

很多时候不懂事

LeetCode23 - 反转链表
发表于2026-03-17|算法题练习链表|简单•递归•链表
📝 题目描述 题目链接:反转链表 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例: 示例 1: 12输入:head = [1,2,3,4,5]输出:[5,4,3,2,1] 示例 2: 12输入:head = [1,2]输出:[2,1] 示例 3: 12输入:head = []输出:[] 提示: 链表中节点的数目范围是 [0, 5000] -5000 <= Node.val <= 5000 💡 解题思路 方法一:递归 比较容易想到的解法,本质上就是利用函数调用栈状态来记录每个节点。其关键在于反向工作。假设链表的其余部分已经被反转,现在应该如何反转它前面的部分? 假设链表为: n1​→…→nk−1​→nk​→nk+1​→…→nm​→∅n_1​→…→n_{k−1}​→n_{k}​→n_{k+1}​→…→n_{m}​→∅ n1​​→…→nk−1​​→nk​​→nk+1​​→…→nm​​→∅ 若从节点 nk+1​n_{k+1}​nk+1​​ 到 nmn_{m}nm​​ 已经被反转,而我们正处于 nkn_{k}nk​​。 n1​→…→nk−1...
LeetCode22 - 相交链表
发表于2026-03-16|算法题练习链表|简单•哈希表•双指针•链表
📝 题目描述 题目链接:相交链表 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据 保证 整个链式结构中不存在环。 注意,函数返回结果后,链表必须 保持其原始结构 。 自定义评测: 评测系统 的输入如下(你设计的程序 不适用 此输入): intersectVal - 相交的起始节点的值。如果不存在相交节点,这一值为 0 listA - 第一个链表 listB - 第二个链表 skipA - 在 listA 中(从头节点开始)跳到交叉节点的节点数 skipB - 在 listB 中(从头节点开始)跳到交叉节点的节点数 评测系统将根据这些输入创建链式数据结构,并将两个头节点 headA 和 headB 传递给你的程序。如果程序能够正确返回相交节点,那么你的解决方案将被 视作正确答案 。 示例: 示例 1: 123456输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,6,1,8,4...
LeetCode21 - 搜索二维矩阵 II
发表于2026-03-15|算法题练习矩阵|中等•数组•分治•矩阵•二分查找
📝 题目描述 题目链接:搜索二维矩阵 II 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 示例: 示例 1: 12输入:matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 5输出:true 示例 2: 12输入:matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 20输出:false 提示: m == matrix.length n == matrix[i].length 1 <= n, m <= 300 -10^9 <= matrix[i][j] <= 10^9 每行的所有元素从左到右升序排列 每列的所有元素从上到下升序排列 -10^9 &...
LeetCode20 - 旋转图像
发表于2026-03-15|算法题练习矩阵|中等•数组•矩阵•数学
📝 题目描述 题目链接:旋转图像 给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例: 示例 1: 12输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[[7,4,1],[8,5,2],[9,6,3]] 示例 2: 12输入:matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]输出:[[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]] 提示: n == matrix.length == matrix[i].length 1 <= n <= 20 -1000 <= matrix[i][j] <= 1000 💡 解题思路 方法一:原地旋转 仔细思考,对于一个n×nn \times nn×n矩阵的任意位置[i, j][i,\ j][i, j],推断一下其在旋转后的坐标...
LeetCode19 - 螺旋矩阵
发表于2026-03-14|算法题练习矩阵|中等•数组•矩阵•模拟
📝 题目描述 题目链接:螺旋矩阵 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例: 示例 1: 12输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5] 示例 2: 12输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7] 提示: m == matrix.length n == matrix[i].length 1 <= m, n <= 10 -100 <= matrix[i][j] <= 100 💡 解题思路 方法一:模拟 最容易想到的方法就是模拟螺旋矩阵的路径。 初始位置是矩阵的左上角,初始方向是向右。 需要注意一下改变方向的边界条件,当路径超出界限或者进入之前访问过的位置时,顺时针旋转,进入下一个方向。 判断路径是否进入之前访问过的位置需要使用一个与输入矩阵大小相同的辅助矩阵 visited,其中的每个元素表示该位置是...
LeetCode18 - 矩阵置零
发表于2026-03-11|算法题练习矩阵|哈希表•中等•数组•矩阵
📝 题目描述 题目链接:矩阵置零 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例: 示例 1: 12输入:matrix = [[1,1,1],[1,0,1],[1,1,1]]输出:[[1,0,1],[0,0,0],[1,0,1]] 示例 2: 12输入:matrix = [[0,1,2,0],[3,4,5,2],[1,3,1,5]]输出:[[0,0,0,0],[0,4,5,0],[0,3,1,0]] 提示: m == matrix.length n == matrix[0].length 1 <= m, n <= 200 -2^31 <= matrix[i][j] <= 2^31 - 1 💡 解题思路 方法一:标记数组 首先我们创建两个bool数组zero_row(m), zero_col(n),分别代表矩阵的m行和n列。 该bool数组的含义是:如果zero_row[i] = true,那么代表矩阵的第i行需要全置为0;同理如果zero_col[j] = true,那么代...
LeetCode17 - 缺失的第一个正数
发表于2026-03-11|算法题练习普通数组|哈希表•数组•困难
📝 题目描述 题目链接:缺失的第一个正数 给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n)O(n)O(n) 并且只使用常数级别额外空间的解决方案。 示例: 12345678910111213141516171819示例 1:输入:nums = [1,2,0]输出:3解释:范围 [1,2] 中的数字都在数组中。示例 2:输入:nums = [3,4,-1,1]输出:2解释:1 在数组中,但 2 没有。示例 3:输入:nums = [7,8,9,11,12]输出:1解释:最小的正数 1 没有出现。 提示: 1 <= nums.length <= 10^5 -2^31 <= nums[i] <= 2^31 - 1 💡 解题思路 方法一:标记法 如果题目没有空间复杂度要求,那么很容易想到的一个解法就是将数组所有的数放入哈希表(set),随后从 1 开始依次枚举正整数,并判断其是否在哈希表中,这种做法的时间复杂度为 O(N)O(N)O(N),空间复杂度为 O(N)O(N)O(N)。 上面做法中,耗费空...
LeetCode16 - 除了自身以外数组的乘积
发表于2026-03-10|算法题练习普通数组|中等•数组•前缀和
📝 题目描述 题目链接:除了自身以外数组的乘积 给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除了 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32位整数 范围内。 请 不要使用除法,且在 O(n)O(n)O(n) 时间复杂度内完成此题。 示例: 1234567891011示例 1:输入: nums = [1,2,3,4]输出: [24,12,8,6]示例 2:输入: nums = [-1,1,0,-3,3]输出: [0,0,9,0,0] 提示: 2 <= nums.length <= 10^5 -30 <= nums[i] <= 30 输入 保证 数组 answer[i] 在 32 位 整数范围内 💡 解题思路 方法一:左右乘积列表 最容易想到的方法,首先构建两个数组 prefix 和 suffix。 其中 prefix[i] 代表 输入数组中 nums[i] 前面所有数字的乘积(不含nums[i]自己);同理,suffi...
LeetCode15 - 轮转数组
发表于2026-03-08|算法题练习普通数组|中等•数组•数字•双指针
📝 题目描述 题目链接:轮转数组 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例: 123456789101112131415161718示例 1:输入: nums = [1,2,3,4,5,6,7], k = 3输出: [5,6,7,1,2,3,4]解释:向右轮转 1 步: [7,1,2,3,4,5,6]向右轮转 2 步: [6,7,1,2,3,4,5]向右轮转 3 步: [5,6,7,1,2,3,4]示例 2:输入:nums = [-1,-100,3,99], k = 2输出:[3,99,-1,-100]解释: 向右轮转 1 步: [99,-1,-100,3]向右轮转 2 步: [3,99,-1,-100] 提示: 1 <= nums.length <= 10^5 -2^31 <= nums[i] <= 2^31 - 1 0 <= k <= 10^5 💡 解题思路 方法一:使用额外的数组 我们可以使用额外的数组来将每个元素放至正确的位置。用 n 表示数组的长度,我们遍历原数组,将原数组下标...
LeetCode14 - 合并区间
发表于2026-03-04|算法题练习普通数组|中等•数组•排序
📝 题目描述 题目链接:合并区间 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [start_i, end_i] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。 示例: 12345678910111213141516171819示例 1:输入:intervals = [[1,3],[2,6],[8,10],[15,18]]输出:[[1,6],[8,10],[15,18]]解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2:输入:intervals = [[1,4],[4,5]]输出:[[1,5]]解释:区间 [1,4] 和 [4,5] 可被视为重叠区间。示例 3:输入:intervals = [[4,7],[1,4]]输出:[[1,7]]解释:区间 [1,4] 和 [4,7] 可被视为重叠区间。 提示: 1 <= intervals.length <= 10^4 intervals[i].length == 2 0 <= start_...
1…567…9
avatar
azuki
记录一些琐碎的事物
文章
85
标签
47
分类
18
GitHub
公告
This is my Blog
最新文章
LeetCode70 - 最小栈2026-04-10
NLLB与SentencePiece在MoeTranslate中的技术实现2026-04-09
LeetCode69 - 有效的括号2026-04-08
LeetCode68 - 寻找两个正序数组的中位数2026-04-08
LeetCode67 - 寻找旋转排序数组中的最小值2026-04-08
分类
  • 华厦实习9
  • 生活记录2
  • 算法题练习71
    • 二分查找6
    • 二叉树15
    • 双指针4
    • 哈希3
    • 回溯8
标签
发癫生活面试实习华厦简单哈希表中等数组前缀和困难队列滑动窗口单调队列堆分治动态规划排序字符串数字双指针矩阵模拟数学二分查找递归链表栈初级工程师归并排序堆(优先队列)设计双向链表树深度优先搜索二叉树广度优先搜索二叉搜索树资深工程师并查集
归档
  • 四月 2026 21
  • 三月 2026 40
  • 二月 2026 6
  • 一月 2026 4
  • 十二月 2025 2
  • 七月 2024 11
  • 六月 2024 1
网站信息
文章数目 :
85
本站访客数 :
本站总浏览量 :
最后更新时间 :
© 2024 - 2026 By azuki框架 Hexo 8.1.1|主题 Butterfly 5.5.3
搜索
数据加载中