LC 805. 数组的均值分割 题目描述这是 LeetCode 上的 805. 数组的均值分割 ,难度为 困难。 给定你一个整数数组 nums 我们要将 nums 数组中的每个元素移动到 A 数组 或者 B 数组中,使得 A 数组和 B 数组不为空,并且 average(A) == average(B) 。 如果可以完成则返回 true, 否则返回 false。 注意:对于数组 arr, average(arr) 是 arr 2022-11-14 哈希表 二进制枚举 折半搜索
LC 791. 自定义字符串排序 题目描述这是 LeetCode 上的 791. 自定义字符串排序 ,难度为 中等。 给定两个字符串 order 和 s 。order 的所有单词都是 唯一 的,并且以前按照一些自定义的顺序排序。 对 s 的字符进行置换,使其与排序的 order 相匹配。更具体地说,如果在 order 中的字符 x 出现字符 y 之前,那么在排列后的字符串中, x 也应该出现在 y 之前。 返回 满足这个性质的 s 2022-11-13 模拟 构造
LC 790. 多米诺和托米诺平铺 题目描述这是 LeetCode 上的 790. 多米诺和托米诺平铺 ,难度为 中等。 有两种形状的瓷砖:一种是 2 x 1 的多米诺形,另一种是形如 "L" 的托米诺形。两种形状都可以旋转。 给定整数 n ,返回可以平铺 2 x n 的面板的方法的数量。返回对 $10^9 + 7$ 取模 的值。 平铺指的是每个正方形都必须有瓷砖覆盖。两个平铺不同,当且仅当面板上有四个方向上的 2022-11-12 状态机 DP
LC 1704. 判断字符串的两半是否相似 题目描述这是 LeetCode 上的 1704. 判断字符串的两半是否相似 ,难度为 简单。 给你一个偶数长度的字符串 s 。将其拆分成长度相同的两半,前一半为 a ,后一半为 b 。 两个字符串 相似 的前提是它们都含有相同数目的元音('a','e','i','o','u','A','E 2022-11-11 模拟
LC 864. 获取所有钥匙的最短路径 题目描述这是 LeetCode 上的 864. 获取所有钥匙的最短路径 ,难度为 困难。 给定一个二维网格 grid ,其中: '.' 代表一个空房间 '#' 代表一堵墙 '@' 是起点 小写字母代表钥匙 大写字母代表锁 我们从起点开始出发,一次移动是指向四个基本方向之一行走一个单位空间。我们不能在网格外面行走,也无法穿过一堵墙。如果途经一个钥匙 2022-11-10 BFS 状态压缩
LC 764. 最大加号标志 题目描述这是 LeetCode 上的 764. 最大加号标志 ,难度为 中等。 在一个 $n \times n$ 的矩阵 grid 中,除了在数组 mines 中给出的元素为 0,其他每个元素都为 1。$mines[i] = [x_i, y_i]$ 表示 $grid[x_i][y_i] = 0$。 返回 grid 中包含 1 的最大的 轴对齐 加号标志的阶数 。如果未找到加号标志,则返回 0 。 2022-11-09 模拟 预处理
LC 1684. 统计一致字符串的数目 题目描述这是 LeetCode 上的 1684. 统计一致字符串的数目 ,难度为 简单。 给你一个由不同字符组成的字符串 allowed 和一个字符串数组 words。如果一个字符串的每一个字符都在 allowed 中,就称这个字符串是 一致字符串 。 请你返回 words 数组中 一致字符串 的数目。 示例 1:12345输入:allowed = "ab", words = 2022-11-08 模拟 位运算
LC 816. 模糊坐标 题目描述这是 LeetCode 上的 816. 模糊坐标 ,难度为 中等。 我们有一些二维坐标,如 "(1, 3)" 或 "(2, 0.5)",然后我们移除所有逗号,小数点和空格,得到一个字符串 S。返回所有可能的原始字符串到一个列表中。 原始的坐标表示法不会存在多余的零,所以不会出现类似于 "00", "0.0", 2022-11-07 模拟 枚举
LC 1678. 设计 Goal 解析器 题目描述这是 LeetCode 上的 1678. 设计 Goal 解析器 ,难度为 简单。 请你设计一个可以解释字符串 command 的 Goal 解析器 。 command 由 "G"、"()" 或 "(al)" 按某种顺序组成。Goal 解析器会将 "G" 解释为字符串 "G"、"( 2022-11-06 模拟
LC 1106. 解析布尔表达式 题目描述这是 LeetCode 上的 1106. 解析布尔表达式 ,难度为困难。 给你一个以字符串形式表述的 布尔表达式 (boolean) expression,返回该式的运算结果。 有效的表达式需遵循以下约定: "t",运算结果为 True "f",运算结果为 False "!(expr)",运算过程为对内部表达式 expr 进行逻 2022-11-05 栈 表达式计算
LC 754. 到达终点数字 题目描述这是 LeetCode 上的 754. 到达终点数字 ,难度为 中等。 在一根无限长的数轴上,你站在 0 的位置。终点在 target 的位置。 你可以做一些数量的移动 numMoves : 每次你可以选择向左或向右移动。 第 i 次移动(从 i == 1 开始,到 i == numMoves),在选择的方向上走 i 步。 给定整数 target,返回 到达目标所需的 最小 移动次数 2022-11-04 数学
LC 1668. 最大重复子字符串 题目描述这是 LeetCode 上的 1668. 最大重复子字符串 ,难度为 简单。 给你一个字符串 sequence,如果字符串 word 连续重复 k 次形成的字符串是 sequence 的一个子字符串,那么单词 word 的 重复值为 k 。 单词 word 的 最大重复值 是单词 word 在 sequence 中最大的重复值。如果 word 不是 sequence 的子串,那么重复值 k 2022-11-03 动态规划 序列 DP 字符串哈希
LC 139. 单词拆分 题目描述这是 LeetCode 上的 139. 单词拆分 ,难度为 中等。 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。 注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。 示例 1:12345输入: s = "leetcode", wordDict = ["leet" 2022-11-02 动态规划 哈希表 序列 DP
LC 198. 打家劫舍 题目描述这是 LeetCode 上的 198. 打家劫舍 ,难度为 中等。 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。 示例 1:123456输入: 2022-11-02 动态规划 线性 DP 状态机 DP
LC 1620. 网络信号最好的坐标 题目描述这是 LeetCode 上的 1620. 网络信号最好的坐标 ,难度为 中等。 给你一个数组 towers 和一个整数 radius 。 数组 towers 中包含一些网络信号塔,其中 $towers[i] = [x{i}, y{i}, q{i}]$ 表示第 i 个网络信号塔的坐标是 $(x{i}, y{i})$ 且信号强度参数为 $q{i}$ 。所有坐标都是在 X-Y 坐标系内的 2022-11-02 模拟 枚举