avatar
文章
101
标签
56
分类
22
首页
归档
标签
分类
关于
很多时候不懂事
搜索
首页
归档
标签
分类
关于

很多时候不懂事

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。同时,两个指针之间的距...
LeetCode4 - 移动零
发表于2026-01-06|算法题练习双指针|简单•双指针
📝 题目描述 题目链接:移动零 给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。 请注意,必须在不复制数组的情况下原地对数组进行操作。 示例: 12345678910示例 1:输入: nums = [0,1,0,3,12]输出: [1,3,12,0,0]示例 2:输入: nums = [0]输出: [0] 提示: 1 <= nums.length <= 10^4 -2^31 <= nums[i] <= 2^31 - 1 💡 解题思路 方法一:暴力解法 遍历数组(ptr1),每当遇到一个0时,就停下来。然后启动一个内层循环(ptr2),从当前位置向后扫描,寻找第一个非零元素。找到后,将两者交换,保证非零元素被挪到前面,0被挪到后面。 缺点: 被动地“填坑”,发现一个0,赶紧去找个数来填上。 方法二:快慢指针解法✅️ 使用两个指针, left(慢指针): 维护非零数组的边界,含义是“下一个非零元素应该放置的位置”。 right(快指针): 负责在前探路,遍历整个数组。 当right遇到非零数,就把它和left位置...
LeetCode 3 - 最长连续序列
发表于2026-01-06|算法题练习哈希|中等•哈希表
📝 题目描述 题目链接:最长连续序列 给定一个未排序的整数数组nums,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度为O(n)O(n)O(n)的算法解决此问题。 示例: 123456789101112131415示例 1:输入:nums = [100,4,200,1,3,2]输出:4解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。示例 2:输入:nums = [0,3,7,2,5,8,4,6,0,1]输出:9示例 3:输入:nums = [1,0,1,2]输出:3 提示: 0 <= nums.length <= 10^5 -10^9 <= nums[i] <= 10^9 💡 解题思路 方法一:哈希表 首先是暴力解法,对于数组中的每一个元素n,以n作为起点,不断匹配n+1是否存在、n+2是否存在,直到n+x是否存在,假设最多匹配到n+x,那么此序列长度就是x+1。 优化1:对于匹配的过程,我们可以提前将所有元素放入哈希表,这样查看一个元素是否存在的复杂度就从O(n)O(n)O(n)降低至...
LeetCode 2 - 字母异位词分组
发表于2025-12-30|算法题练习哈希|中等•哈希表
📝 题目描述 题目链接:字母异位词分组 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词是通过重新排列不同单词或短语的字母而形成的单词或短语,并使用所有原字母一次。 示例: 123456789101112131415161718192021222324示例 1:输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]输出: [["bat"],["nat","tan"],["ate","eat","tea"]]解释:- 在 strs 中没有字符串可以通过重新排列来形成 "bat"。- 字符串 "nat" 和 "tan" 是字母异位词,因为它们可以重新排列以形成彼此。- 字符串 "...
LeetCode 1 - 两数之和
发表于2025-12-15|算法题练习哈希|哈希表•简单
📝 题目描述 题目链接:两数之和 给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。 你可以按任意顺序返回答案。 示例: 12345678910111213141516示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:输入:nums = [3,2,4], target = 6输出:[1,2]示例 3:输入:nums = [3,3], target = 6输出:[0,1] 提示: 2 <= nums.length <= 10^4 -10^9 <= nums[i] <= 10^9 -10^9 <= target <= 10^9 只会存在一个有效答案 💡 解题思路 方法一:暴力解法 最直接的方法是暴力枚举,即枚举数组中的每一个数x,寻找数组中是否存在target -...
实习碎笔9
发表于2024-07-11|华厦实习|华厦
1…891011
avatar
azuki
记录一些琐碎的事物
文章
101
标签
56
分类
22
GitHub
公告
This is my Blog
最新文章
LeetCode85 - 零钱兑换2026-04-26
LeetCode84 - 完全平方数2026-04-25
LeetCode83 - 打家劫舍2026-04-23
LeetCode82 - 杨辉三角2026-04-20
LeetCode81 - 爬楼梯2026-04-20
分类
  • LLM手撕练习1
  • 华厦实习9
  • 生活记录2
  • 算法题练习86
    • 二分查找6
    • 二叉树15
    • 动态规划5
    • 双指针4
标签
发癫生活华厦大语言模型注意力机制面试实习中等数组哈希表前缀和简单困难队列滑动窗口单调队列堆字符串排序分治动态规划数字双指针矩阵模拟数学二分查找栈递归链表初级工程师堆(优先队列)归并排序树深度优先搜索二叉树设计双向链表广度优先搜索二叉搜索树
归档
  • 四月 2026 37
  • 三月 2026 40
  • 二月 2026 6
  • 一月 2026 4
  • 十二月 2025 2
  • 七月 2024 11
  • 六月 2024 1
网站信息
文章数目 :
101
本站访客数 :
本站总浏览量 :
最后更新时间 :
© 2024 - 2026 By azuki框架 Hexo 8.1.1|主题 Butterfly 5.5.3
搜索
数据加载中