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

很多时候不懂事

LeetCode61 - 分割回文串
发表于2026-04-05|算法题练习回溯|中等•动态规划•字符串•回溯
📝 题目描述 题目链接:分割回文串 给你一个字符串 s,请你将 s 分割成一些 子串,使每个子串都是 回文串。返回 s 所有可能的分割方案。 子字符串是字符串中连续的 非空 字符序列。 回文串是向前和向后读都相同的字符串。 示例: 123456789示例 1:输入:s = "aab"输出:[["a","a","b"],["aa","b"]]示例 2:输入:s = "a"输出:[["a"]] 提示: 1 <= s.length <= 16 s 仅由小写英文字母组成 💡 解题思路 方法一:动态规划 + 回溯 思路: 由于需要求出字符串 sss 的所有分割方案,因此我们考虑使用搜索 + 回溯的方法枚举所有可能的分割方法并进行判断。 假设我们当前搜索到字符串的第 iii 个字符,且 s[0..i−1]s[0..i−1]s[0..i−1] 位置的所有字符已经被分割成若干个回文串,并且分割结果被放入了答案数组 ...
LeetCode60 - 单词搜索
发表于2026-04-05|算法题练习回溯|中等•数组•字符串•矩阵•深度优先搜索•回溯
📝 题目描述 题目链接:单词搜索 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 示例: 示例 1: 12输入:board = [['A','B','C','E'],['S','F','C','S'],['A','D','E','E']], word = "ABCCED"输出:true 示例 2: 12输入:board = [['A','B','C','E'],['S',&#...
LeetCode59 - 括号生成
发表于2026-04-05|算法题练习回溯|中等•动态规划•字符串•回溯
📝 题目描述 题目链接:括号生成 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例: 123456789示例 1:输入:n = 3输出:["((()))","(()())","(())()","()(())","()()()"]示例 2:输入:n = 1输出:["()"] 提示: 1 <= n <= 8 💡 解题思路 方法一:回溯 这个思路很直观: 如果左括号数量不大于 n,我们可以放一个左括号。如果右括号数量小于左括号的数量,我们可以放一个右括号。 也就是带有剪枝的深度优先搜索(DFS)/回溯。 方法二:动态规划与分治 任何一个合法的括号序列都可以拆分成这样一种结构: "(" + 【合法的括号序列A】 + ")" + 【合法的括号序列B】 如果我们假设当前需要生成 nnn 对括号,我们可以枚举内部包裹的序列 AAA 有 jjj 对括号,那么外部拼接的...
面试问答
发表于2026-04-04|面试准备|面试•实习
LeetCode58 - 组合总和
发表于2026-04-03|算法题练习回溯|中等•数组•回溯
📝 题目描述 题目链接:组合总和 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的 同一个 数字可以 无限制重复被选取 。如果至少一个数字的被选数量不同,则两种组合是不同的。 对于给定的输入,保证和为 target 的不同组合数少于 150 个。 示例: 123456789101112131415161718示例 1:输入:candidates = [2,3,6,7], target = 7输出:[[2,2,3],[7]]解释:2 和 3 可以形成一组候选,2 + 2 + 3 = 7 。注意 2 可以使用多次。7 也是一个候选, 7 = 7 。仅有这两种组合。示例 2:输入: candidates = [2,3,5], target = 8输出: [[2,2,2,2],[2,3,3],[3,5]]示例 3:输入: candidates = [2], target = 1输出...
LeetCode57 - 电话号码的字母组合
发表于2026-04-03|算法题练习回溯|哈希表•中等•字符串•回溯
📝 题目描述 题目链接:电话号码的字母组合 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例: 123456789示例 1:输入:digits = "23"输出:["ad","ae","af","bd","be","bf","cd","ce","cf"]示例 2:输入:digits = "2"输出:["a","b","c"] 提示: 1 <= digits.length <= 4 digits[i] 是范围 ['2', '9'] 的一个数字 💡 解题思路 方法一:回溯 按照经典的回溯模板撰写即可。 首先使用一个二维数组存储每个数字对应的字母。 然后在回溯过程中,...
LeetCode56 - 子集
发表于2026-04-02|算法题练习回溯|中等•数组•回溯•位运算
📝 题目描述 题目链接:子集 给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的 子集 (幂集)。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 数组的 子集 是从数组中选择一些元素(可能为空)。 示例: 123456789示例 1:输入:nums = [1,2,3]输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]示例 2:输入:nums = [0]输出:[[],[0]] 提示: 1 <= nums.length <= 10 -10 <= nums[i] <= 10 nums 中的所有元素 互不相同 💡 解题思路 方法一:递归 套用“全排列”的模板写法即可,不过这里由于 start 变量的存在,我们只能选择 start 之后的数字,避免了重复,因此可以舍弃 used 数组。 步骤: 首先用一个 track 来记录当前已经选好的数字序列。 子集长度从 0 到 n,用一个循环来遍历。 在每一层递归中,如果 track 长度达标则加入 ans 数组,否则从头到尾遍历整...
LeetCode55 - 全排列
发表于2026-04-02|算法题练习回溯|中等•数组•回溯
📝 题目描述 题目链接:全排列 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例: 1234567891011121314示例 1:输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2:输入:nums = [0,1]输出:[[0,1],[1,0]]示例 3:输入:nums = [1]输出:[[1]] 提示: 1 <= nums.length <= 6 -10 <= nums[i] <= 10 nums 中的所有整数 互不相同 💡 解题思路 方法一:回溯 把数组里的数字想象成放在桌子上的小球,我们要把它们依次放进一个个格子里。每次挑小球时,看看哪个还没被挑走,就把它放进格子里,然后继续挑下一个。 步骤: 状态记录:使用了 used 布尔数组来记录哪些数字已经被选过了,用一个 track 来记录当前已经选好的数字序列。 递归填数:在每一层递归中,从头到尾遍历整个 nums 数组。 剪枝与选择:如果发现 ...
LeetCode54 - 实现 Trie (前缀树)
发表于2026-04-02|算法题练习图论|哈希表•中等•字符串•设计•字典树
📝 题目描述 题目链接:实现 Trie (前缀树) Trie(发音类似 “try”)或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补全和拼写检查。 请你实现 Trie 类: Trie() 初始化前缀树对象。 void insert(String word) 向前缀树中插入字符串 word 。 boolean search(String word) 如果字符串 word 在前缀树中,返回 true(即,在检索之前已经插入);否则,返回 false 。 boolean startsWith(String prefix) 如果之前已经插入的字符串 word 的前缀之一为 prefix ,返回 true ;否则,返回 false 。 示例: 1234567891011121314输入["Trie", "insert", "search", "search", "startsWith", "insert&q...
LeetCode53 - 课程表
发表于2026-04-01|算法题练习图论|中等•深度优先搜索•广度优先搜索•图•拓扑排序
📝 题目描述 题目链接:课程表 你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] = [a_i, b_i] ,表示如果要学习课程 a_i 则 必须 先学习课程 b_i 。 例如,先修课程对 [0, 1] 表示:想要学习课程 0 ,你需要先完成课程 1 。 请你判断是否可能完成所有课程的学习?如果可以,返回 true ;否则,返回 false 。 示例: 1234567891011示例 1:输入:numCourses = 2, prerequisites = [[1,0]]输出:true解释:总共有 2 门课程。学习课程 1 之前,你需要完成课程 0 。这是可能的。示例 2:输入:numCourses = 2, prerequisites = [[1,0],[0,1]]输出:false解释:总共有 2 门课程。学习课程 1 之前,你需要先完成​课程 0 ;并且学习课程 0 之前,你还应先完成课程 1 ...
123…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
搜索
数据加载中