avatar
文章
116
标签
68
分类
23
首页
归档
标签
分类
关于
很多时候不懂事
搜索
首页
归档
标签
分类
关于

很多时候不懂事

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_...
LeetCode13 - 最大子数组和
发表于2026-03-02|算法题练习普通数组|中等•数组•分治•动态规划
📝 题目描述 题目链接:最大子数组和 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组是数组中的一个连续部分。 子数组:子数组是数组中连续的 非空 元素序列。 示例: 12345678910111213141516示例 1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。示例 2:输入:nums = [1]输出:1示例 3:输入:nums = [5,4,-1,7,8]输出:23 提示: 1 <= nums.length <= 10^5 -10^4 <= nums[i] <= 10^4 💡 解题思路 方法一:动态规划 假设数组 nums 的长度为 n,下标是 0 到 n - 1。 我们使用 f(i)f(i)f(i) 表示以第 i 个数结尾的“连续子数组的最大和”,那么很显然我们要求的答案就是: max0≤i≤n−1​f(i)max_{0≤i≤n−1​}{f(i)} max0≤i≤n−1​​f(i)...
LeetCode12 - 最小覆盖子串
发表于2026-02-23|算法题练习子串|哈希表•困难•滑动窗口•字符串
📝 题目描述 题目链接:最小覆盖子串 给定两个字符串 s 和 t,长度分别是 m 和 n,返回 s 中的最短窗口子串,使得该子串包含 t 中的每一个字符(包括重复字符)。如果没有这样的子串,返回空字符串 ""。 测试用例保证答案唯一。 子串:子字符串 是字符串中连续的 非空 字符序列。 示例: 1234567891011121314151617181920示例 1:输入:s = "ADOBECODEBANC", t = "ABC"输出:"BANC"解释:最小覆盖子串 "BANC" 包含来自字符串 t 的 'A'、'B' 和 'C'。示例 2:输入:s = "a", t = "a"输出:"a"解释:整个字符串 s 是最小覆盖子串。示例 3:输入: s = "a", t = "aa"输出: ""解释: ...
LeetCode11 - 滑动窗口最大值
发表于2026-02-14|算法题练习子串|数组•困难•队列•滑动窗口•单调队列•堆
📝 题目描述 题目链接:滑动窗口最大值 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例: 1234567891011121314151617181920示例 1:输入:nums = [1,3,-1,-3,5,3,6,7], k = 3输出:[3,3,5,5,6,7]解释:滑动窗口的位置 最大值--------------- -----[1 3 -1] -3 5 3 6 7 3 1 [3 -1 -3] 5 3 6 7 3 1 3 [-1 -3 5] 3 6 7 5 1 3 -1 [-3 5 3] 6 7 5 1 3 -1 -3 [5 3 6] 7 6 1 3 -1 -3 5 [3 6 7] 7示例 2:输入:nums = [1], k = 1输出...
LeetCode10 - 和为 K 的子数组
发表于2026-02-08|算法题练习子串|哈希表•中等•数组•前缀和
📝 题目描述 题目链接:和为 K 的子数组 给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例: 1234567891011示例 1:输入:nums = [1,1,1], k = 2输出:2示例 2:输入:nums = [1,2,3], k = 3输出:2 提示: 1 <= nums.length <= 2 * 10^4 -1000 <= nums[i] <= 1000 -10^7 <= k <= 10^7 💡 解题思路 方法一:暴力解法 最容易想到的朴素解法,使用一个二重循环,列举出所有可能的开头i和结尾j,然后计算它们代表的子数组的和,在计算和时,由于我们的内层循环(代表结尾的j)是逐个往后列举的,因此可以令sum += nums[j]而不必重新遍历来计算和,稍微降低了一下复杂度。 方法二:前缀和 + 哈希表优化 方法一中,对于每个开头i,我们要遍历i后的每一个元素来找结尾j。 对于这种:知道最终和k,知道其中一个元素i,求另一个元素j的问题,...
LeetCode9 - 找到字符串中所有字母异位词
发表于2026-02-06|算法题练习滑动窗口|哈希表•中等•滑动窗口•字符串
📝 题目描述 题目链接:找到字符串中所有字母异位词 给定两个字符串 s 和 p,找到 s 中所有 p 的异位词的子串,返回这些子串的起始索引。不考虑答案输出的顺序。 字母异位词是通过重新排列不同单词或短语的字母而形成的单词或短语,并使用所有原字母一次。 示例: 123456789101112131415161718示例 1:输入: s = "cbaebabacd", p = "abc"输出: [0,6]解释:起始索引等于 0 的子串是 "cba", 它是 "abc" 的异位词。起始索引等于 6 的子串是 "bac", 它是 "abc" 的异位词。 示例 2:输入: s = "abab", p = "ab"输出: [0,1,2]解释:起始索引等于 0 的子串是 "ab", 它是 "ab" 的异位词。起始索引等于 1 的子串是 "ba", 它是 "ab...
LeetCode8 - 无重复字符的最长子串
发表于2026-02-04|算法题练习滑动窗口|哈希表•中等•滑动窗口•字符串
📝 题目描述 题目链接:无重复字符的最长子串 给定一个字符串 s ,请你找出其中不含有重复字符的最长子串的长度。 示例: 1234567891011121314151617181920示例 1:输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。注意 "bca" 和 "cab" 也是正确答案。示例 2:输入: s = "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: s = "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。 提示: 0 <= s.length <= 5 * 10^4 s 由英文字母、数字、符号和空格组成 💡 解题思路 方法一:...
LeetCode7 - 接雨水
发表于2026-02-03|算法题练习双指针|双指针•困难•动态规划•栈
📝 题目描述 题目链接:接雨水 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例: 123456789101112示例 1:输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 示例 2:输入:height = [4,2,0,3,2,5]输出:9 提示: n == height.length 1 <= n <= 2 * 10^4 0 <= height[i] <= 10^5 💡 解题思路 方法一:动态规划 我们先考虑一般情况,特殊情况我们最后再考虑。 ①一般情况: 比如,对于上图中的横坐标为2的位置,它在垂直方向能接多少雨水呢? 我们可以得到对于每个横坐标位置,接雨水的量 = 该位置雨水可以淹没多高 - 该位置的高度; 很明显该位置的高度就是height[2] = 1,那么怎么算该位置可以雨水可以淹没多高呢? 这有点...
LeetCode6 - 三数之和
发表于2026-01-25|算法题练习双指针|中等•双指针
📝 题目描述 题目链接:三数之和 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != j、i != k 且 j != k ,同时还满足 nums[i] + nums[j] + nums[k] == 0 。请你返回所有和为 0 且不重复的三元组。 注意: 答案中不可以包含重复的三元组。 示例: 123456789101112131415161718192021222324示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]解释:nums[0] + nums[1] + nums[2] = (-1) + 0 + 1 = 0 。nums[1] + nums[2] + nums[4] = 0 + 1 + (-1) = 0 。nums[0] + nums[3] + nums[4] = (-1) + 2 + (-1) = 0 。不同的三元组是 [-1,0,1] 和 [-1,-1,2] 。注意,输出的顺序和三元组的顺序并不重要。示例 2:输入:nums = [0,1,1...
LeetCode5 - 盛最多水的容器
发表于2026-01-25|算法题练习双指针|中等•双指针
📝 题目描述 题目链接:盛最多水的容器 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明: 你不能倾斜容器。 示例: 12345678910111213示例 1:输入:[1,8,6,2,5,4,8,3,7]输出:49 解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。示例 2:输入:height = [1,1]输出:1 提示: n == height.length 2 <= n <= 10^5 0 <= height[i] <= 10^4 💡 解题思路 方法一:双指针 难点在于如何想到初始时让左右指针分别处于两端,然后不断让左右指针中,高度较小的那个往中间移动。 假设初始时,左指针和右指针指向的数分别为 LLL 和 RRR,假设 L≤RL≤RL≤R。同时,两个指针之间的距...
1…9101112
avatar
azuki
记录一些琐碎的事物
文章
116
标签
68
分类
23
GitHub
公告
This is my Blog
最新文章
LeetCode100 - 寻找重复数2026-09-10
LeetCode99 - 下一个排列2026-09-10
LeetCode98 - 颜色分类2026-09-08
LeetCode97 - 多数元素2026-09-08
LeetCode96 - 只出现一次的数字2026-09-08
分类
  • LLM手撕练习1
  • 华厦实习9
  • 生活记录2
  • 算法题练习101
    • 二分查找6
    • 二叉树15
    • 动态规划10
    • 双指针4
标签
生活发癫面试实习华厦大语言模型注意力机制简单哈希表中等位运算数组双指针二分查找Floyd 判圈算法抽屉原理困难队列滑动窗口单调队列堆前缀和字符串分治动态规划排序矩阵模拟数学数字链表递归栈初级工程师归并排序设计双向链表堆(优先队列)树深度优先搜索
归档
  • 九月 2026 9
  • 八月 2026 5
  • 七月 2026 1
  • 四月 2026 37
  • 三月 2026 40
  • 二月 2026 6
  • 一月 2026 4
  • 十二月 2025 2
网站信息
文章数目 :
116
本站访客数 :
本站总浏览量 :
最后更新时间 :
© 2024 - 2026 By azuki框架 Hexo 8.1.1|主题 Butterfly 5.5.3
搜索
数据加载中