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

LC 942. 增减字符串匹配

题目描述这是 LeetCode 上的 942. 增减字符串匹配 ,难度为 简单。 由范围 $[0,n]$ 内所有整数组成的 $n + 1$ 个整数的排列序列可以表示为长度为 $n$ 的字符串 s ,其中: 如果 perm[i] < perm[i + 1] ,那么 s[i] == 'I' 如果 perm[i] > perm[i + 1] ,那么 s[i] == &#3

2022-05-09
贪心 双指针 构造

LC 442. 数组中重复的数据

题目描述这是 LeetCode 上的 442. 数组中重复的数据 ,难度为 中等。 给你一个长度为 $n$ 的整数数组 nums,其中 nums 的所有整数都在范围 $[1, n]$ 内,且每个整数出现一次或两次。请你找出所有出现 两次 的整数,并以数组形式返回。 你必须设计并实现一个时间复杂度为 $O(n)$ 且仅使用常量额外空间的算法解决此问题。 示例 1:123输入:nums = [4,3,

2022-05-08
数组 原地哈希

LC 433. 最小基因变化

题目描述这是 LeetCode 上的 433. 最小基因变化 ,难度为 中等。 基因序列可以表示为一条由 $8$ 个字符组成的字符串,其中每个字符都是 'A'、'C'、'G' 和 'T' 之一。 假设我们需要调查从基因序列 start 变为 end 所发生的基因变化。一次基因变化就意味着这个基因序列中的一个字符发生了变化。 例如,&

2022-05-07
图论 DFS BFS 启发式搜索 双向 BFS AStar 算法

LC 933. 最近的请求次数

题目描述这是 LeetCode 上的 933. 最近的请求次数 ,难度为 简单。 写一个 RecentCounter 类来计算特定时间范围内最近的请求。 请你实现 RecentCounter 类: RecentCounter() 初始化计数器,请求数为 $0$ 。 int ping(int t) 在时间 $t$ 添加一个新请求,其中 $t$ 表示以毫秒为单位的某个时间,并返回过去 $3000$

2022-05-06
分块 线段树(动态开点)

LC 713. 乘积小于 K 的子数组

题目描述这是 LeetCode 上的 713. 乘积小于 K 的子数组 ,难度为 中等。 给你一个整数数组 nums 和一个整数 $k$ ,请你返回子数组内所有元素的乘积严格小于 $k$ 的连续子数组的数目。 示例 1:123456输入:nums = [10,5,2,6], k = 100输出:8解释:8 个乘积小于 100 的子数组分别为:[10]、[5]、[2],、[6]、[10,5]、[5,

2022-05-05
双指针 滑动窗口

LC 1823. 找出游戏的获胜者

题目描述这是 LeetCode 上的 1823. 找出游戏的获胜者 ,难度为 中等。 共有 $n$ 名小伙伴一起做游戏。 小伙伴们围成一圈,按顺时针顺序从 $1$ 到 $n$ 编号。 确切地说,从第 i 名小伙伴顺时针移动一位会到达第 i + 1 名小伙伴的位置,其中 $1 <= i < n$ ,从第 n 名小伙伴顺时针移动一位会回到第 1 名小伙伴的位置。 游戏遵循如下规则: 从第

2022-05-04
模拟 约瑟夫环

LC 937. 重新排列日志文件

题目描述这是 LeetCode 上的 937. 重新排列日志文件 ,难度为 简单。 给你一个日志数组 logs。每条日志都是以空格分隔的字串,其第一个字为字母与数字混合的 标识符 。 有两种不同类型的日志: 字母日志:除标识符之外,所有字均由小写字母组成 数字日志:除标识符之外,所有字均由数字组成 请按下述规则将日志重新排序: 所有 字母日志 都排在 数字日志 之前。 字母日志 在内容不同时

2022-05-03
排序

LC 591. 标签验证器

题目描述这是 LeetCode 上的 591. 标签验证器 ,难度为 困难。 给定一个表示代码片段的字符串,你需要实现一个验证器来解析这段代码,并返回它是否合法。合法的代码片段需要遵守以下的所有规则: 代码必须被合法的闭合标签包围。否则,代码是无效的。 闭合标签(不一定合法)要严格符合格式:<TAG_NAME>TAG_CONTENT</TAG_NAME>。其中,<T

2022-05-02
模拟 栈

LC 1305. 两棵二叉搜索树中的所有元素

题目描述这是 LeetCode 上的 1305. 两棵二叉搜索树中的所有元素 ,难度为 中等。 给你 root1 和root2 这两棵二叉搜索树。 请你返回一个列表,其中包含两棵树中的所有整数并按升序排序。 示例 1: 123输入:root1 = [2,1,4], root2 = [1,0,3]输出:[0,1,1,2,3,4] 示例 2: 123输入:root1 = [1,null,8], r

2022-05-01
中序遍历 归并排序

LC 908. 最小差值 I

题目描述这是 LeetCode 上的 908. 最小差值 I ,难度为 简单。 给你一个整数数组 nums,和一个整数 k 。 在一个操作中,您可以选择 $0 <= i < nums.length$ 的任何索引 i 。将 $nums[i]$ 改为 $nums[i] + x$ ,其中 $x$ 是一个范围为 $[-k, k]$ 的整数。 对于每个索引 i ,最多只能应用一次此操作。 num

2022-04-30
模拟 脑筋急转弯

LC 427. 建立四叉树

题目描述这是 LeetCode 上的 427. 建立四叉树 ,难度为 中等。 给你一个 $n \times n$ 矩阵 grid ,矩阵由若干 $0$ 和 $1$ 组成。 请你用四叉树表示该矩阵 grid 。 你需要返回能表示矩阵的四叉树的根结点。 注意,当 isLeaf 为 False 时,你可以把 True 或者 False 赋值给节点,两种值都会被判题机制接受。 四叉树数据结构中,每个内部节

2022-04-29
前缀和 递归

LC 905. 按奇偶排序数组

题目描述这是 LeetCode 上的 905. 按奇偶排序数组 ,难度为 简单。 给你一个整数数组 nums,将 nums 中的的所有偶数元素移动到数组的前面,后跟所有奇数元素。 返回满足此条件的任一数组作为答案。 示例 1:12345输入:nums = [3,1,2,4]输出:[2,4,3,1]解释:[4,2,3,1]、[2,4,1,3] 和 [4,2,1,3] 也会被视作正确答案。示例 2:1

2022-04-28
模拟 双指针

LC 417. 太平洋大西洋水流问题

题目描述这是 LeetCode 上的 417. 太平洋大西洋水流问题 ,难度为 中等。 有一个 m × n 的矩形岛屿,与 太平洋 和 大西洋 相邻。 “太平洋” 处于大陆的左边界和上边界,而 “大西洋” 处于大陆的右边界和下边界。 这个岛被分割成一个由若干方形单元格组成的网格。给定一个 m x n 的整数矩阵 heights , $heights[r][c]$ 表示坐标 $(r, c)$ 上单元

2022-04-27
DFS 并查集 BFS 多源 BFS

LC 883. 三维形体投影面积

题目描述这是 LeetCode 上的 883. 三维形体投影面积 ,难度为 简单。 在 $n \times n$ 的网格 grid 中,我们放置了一些与 x,y,z 三轴对齐的 $1 \times 1 \times 1$ 立方体。 每个值 $v = grid[i][j]$ 表示 $v$ 个正方体叠放在单元格 $(i, j)$ 上。 现在,我们查看这些立方体在 xy、yz 和 zx 平面上的投影。

2022-04-26
模拟

LC 398. 随机数索引

题目描述这是 LeetCode 上的 398. 随机数索引 ,难度为 中等。 给定一个可能含有重复元素的整数数组,要求随机输出给定的数字的索引。 您可以假设给定的数字一定存在于数组中。 注意:数组大小可能非常大,使用太多额外空间的解决方案将不会通过测试。 示例:12345678int[] nums = new int[] &#123;1,2,3,3,3&#125;;Solution soluti

2022-04-25
哈希表 模拟 随机化 蓄水池抽样
1…2122232425…58

搜索

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