宫水三叶の刷题日记
  • 首页
  • 归档
  • 标签
  • 关于
  • 友链
  •   
  •   

LC 558. 四叉树交集

题目描述这是 LeetCode 上的 558. 四叉树交集 ,难度为 中等。 二进制矩阵中的所有元素不是 $0$ 就是 $1$ 。 给你两个四叉树,quadTree1 和 quadTree2。 其中 quadTree1 表示一个 $n \times n$ 二进制矩阵,而 quadTree2 表示另一个 $n \times n$ 二进制矩阵。 请你返回一个表示 $n \times n$ 二进制矩阵的

2022-07-15
递归

LC 745. 前缀和后缀搜索

题目描述这是 LeetCode 上的 745. 前缀和后缀搜索 ,难度为 困难。 设计一个包含一些单词的特殊词典,并能够通过前缀和后缀来检索单词。 实现 WordFilter 类: WordFilter(string[] words) 使用词典中的单词 words 初始化对象。 f(string pref, string suff) 返回词典中具有前缀 prefix 和后缀 suff 的单词的下

2022-07-14
字典树

LC 735. 行星碰撞

题目描述这是 LeetCode 上的 735. 行星碰撞 ,难度为 中等。 给定一个整数数组 asteroids,表示在同一行的行星。 对于数组中的每一个元素,其绝对值表示行星的大小,正负表示行星的移动方向(正表示向右移动,负表示向左移动)。 每一颗行星以相同的速度移动,找出碰撞后剩下的所有行星。 碰撞规则: 两个行星相互碰撞,较小的行星会爆炸。 如果两颗行星大小相同,则两颗行星都会爆炸。 两颗

2022-07-13
模拟 栈

LC 1252. 奇数值单元格的数目

题目描述这是 LeetCode 上的 1252. 奇数值单元格的数目 ,难度为 简单。 给你一个 $m \times n$ 的矩阵,最开始的时候,每个单元格中的值都是 $0$。 另有一个二维索引数组 indices,$indices[i] = [r_i, c_i]$ 指向矩阵中的某个位置,其中 $r_i$ 和 $c_i$ 分别表示指定的行和列(从 $0$ 开始编号)。 对 $indices[i]$

2022-07-12
模拟 位运算 计数

LC 676. 实现一个魔法字典

题目描述这是 LeetCode 上的 676. 实现一个魔法字典 ,难度为 中等。 设计一个使用单词列表进行初始化的数据结构,单词列表中的单词 互不相同 。 如果给出一个单词,请判定能否只将这个单词中一个字母换成另一个字母,使得所形成的新单词存在于你构建的字典中。 实现 MagicDictionary 类: MagicDictionary() 初始化对象 void buildDict(Strin

2022-07-11
DFS 字典树

LC 741. 摘樱桃

题目描述这是 LeetCode 上的 741. 摘樱桃 ,难度为 困难。 一个$N \times N$ 的网格( grid) 代表了一块樱桃地,每个格子由以下三种数字的一种来表示: $0$ 表示这个格子是空的,所以你可以穿过它。 $1$ 表示这个格子里装着一个樱桃,你可以摘到樱桃然后穿过它。 $-1$ 表示这个格子里有荆棘,挡着你的路。 你的任务是在遵守下列规则的情况下,尽可能的摘到最多樱桃:

2022-07-10
线性 DP

LC 873. 最长的斐波那契子序列的长度

题目描述这是 LeetCode 上的 873. 最长的斐波那契子序列的长度 ,难度为 中等。 如果序列 $X_1, X_2, …, X_n$ 满足下列条件,就说它是 斐波那契式 的: n >= 3 对于所有 i + 2 <= n,都有 $Xi + X{i+1} = X_{i+2}$ 给定一个严格递增的正整数数组形成序列 arr,找到 arr 中最长的斐波那契式的子序列的长度。如果一

2022-07-09
动态规划 序列 DP 哈希表

LC 1217. 玩筹码

题目描述这是 LeetCode 上的 1217. 玩筹码 ,难度为 简单。 有 n 个筹码,第 $i$ 个筹码的位置是 position[i]。 我们需要把所有筹码移到同一个位置。 在一步中,我们可以将第 $i$ 个筹码的位置从 $position[i]$ 改变为: position[i] + 2 或 position[i] - 2,此时 cost = 0 position[i] + 1 或 p

2022-07-08
贪心 枚举

LC 648. 单词替换

题目描述这是 LeetCode 上的 648. 单词替换 ,难度为 中等。 在英语中,我们有一个叫做 词根(root) 的概念,可以词根后面添加其他一些词组成另一个较长的单词——我们称这个词为 继承词(successor)。例如,词根an,跟随着单词 other(其他),可以形成新的单词 another(另一个)。 现在,给定一个由许多词根组成的词典 dictionary 和一个用空格分隔单词形成

2022-07-07
字典树

LC 736. Lisp 语法解析

题目描述这是 LeetCode 上的 736. Lisp 语法解析 ,难度为 困难。 给你一个类似 Lisp 语句的字符串表达式 expression,求出其计算结果。 表达式语法如下所示: 表达式可以为整数,let 表达式,add 表达式,mult 表达式,或赋值的变量。表达式的结果总是一个整数。 整数可以是正整数、负整数、$0$ let 表达式采用 "(let v1 e1 v2 e

2022-07-06
哈希表 模拟 DFS

LC 729. 我的日程安排表 I

题目描述这是 LeetCode 上的 729. 我的日程安排表 I ,难度为 中等。 实现一个 MyCalendar 类来存放你的日程安排。如果要添加的日程安排不会造成 重复预订 ,则可以存储这个新的日程安排。 当两个日程安排有一些时间上的交叉时(例如两个日程安排都在同一时间内),就会产生 重复预订 。 日程可以用一对整数 start 和 end 表示,这里的时间是半开区间,即 $[start,

2022-07-05
哈希表 模拟 线段树 位运算 红黑树 分块 线段树(动态开点)

LC 556. 下一个更大元素 III

题目描述这是 LeetCode 上的 556. 下一个更大元素 III ,难度为 中等。 给你一个正整数 $n$,请你找出符合条件的最小整数,其由重新排列 $n$ 中存在的每位数字组成,并且其值大于 $n$。 如果不存在这样的正整数,则返回 $-1$ 。 注意 ,返回的整数应当是一个 $32$ 位整数 ,如果存在满足题意的答案,但不是 $32$ 位整数 ,同样返回 $-1$。 示例 1:123输入

2022-07-03
模拟 双指针

LC 1976. 到达目的地的方案数

题目描述这是 LeetCode 上的 1976. 到达目的地的方案数 ,难度为 中等。 你在一个城市里,城市由 n 个路口组成,路口编号为 $0$ 到 $n - 1$ ,某些路口之间有双向道路。 输入保证你可以从任意路口出发到达其他任意路口,且任意两个路口之间最多有一条路。 给你一个整数 n 和二维整数数组 roads,其中 $roads[i] = [u_i, v_i, time_i]$ 表示在路

2022-07-02
动态规划 最短路 拓扑排序

LC 871. 最低加油次数

题目描述这是 LeetCode 上的 871. 最低加油次数 ,难度为 困难。 汽车从起点出发驶向目的地,该目的地位于出发位置东面 target 英里处。 沿途有加油站,每个 station[i] 代表一个加油站,它位于出发位置东面 station[i][0] 英里处,并且有 station[i][1] 升汽油。 假设汽车油箱的容量是无限的,其中最初有 startFuel 升燃料。它每行驶 $1$

2022-07-02
模拟 优先队列(堆) 贪心

LC 241. 为运算表达式设计优先级

题目描述这是 LeetCode 上的 241. 为运算表达式设计优先级 ,难度为 中等。 给你一个由数字和运算符组成的字符串 expression,按不同优先级组合数字和运算符,计算并返回所有可能组合的结果。你可以按任意顺序返回答案。 生成的测试用例满足其对应输出值符合 $32$ 位整数范围,不同结果的数量不超过 $10^4$ 。 示例 1:1234567输入:expression = &quot

2022-07-01
DFS 爆搜
1…1617181920…58

搜索

Hexo Fluid
总访问量 次 总访客数 人