LC 1074. 元素和为目标值的子矩阵数量 题目描述这是 LeetCode 上的 1074. 元素和为目标值的子矩阵数量 ,难度为 困难。 给出矩阵 matrix 和目标值 target,返回元素总和等于目标值的非空子矩阵的数量。 子矩阵 x1, y1, x2, y2 是满足 x1 <= x <= x2 且 y1 <= y <= y2 的所有单元 matrix[x][y] 的集合。 如果 (x1, y1, x2, y 2021-05-29 哈希表 前缀和
LC 477. 汉明距离总和 题目描述这是 LeetCode 上的 477. 汉明距离总和 ,难度为 中等。 两个整数的 汉明距离 指的是这两个数字的二进制数对应位不同的数量。 给你一个整数数组 nums,请你计算并返回 nums 中任意两个数之间汉明距离的总和。 示例 1:12345输入:nums = [4,14,2]输出:6解释:在二进制表示中,4 表示为 0100 ,14 表示为 1110 ,2表示为 0010 。(这样 2021-05-28 数学 位运算
LC 461. 汉明距离 题目描述这是 LeetCode 上的 461. 汉明距离 ,难度为 简单。 两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。 给出两个整数 x 和 y,计算它们之间的汉明距离。 注意:0 ≤ x, y < 231. 示例:12345678910输入: x = 1, y = 4输出: 2解释:1 (0 0 0 1)4 (0 1 0 0) ↑ ↑上面的 2021-05-27 位运算
LC 1190. 反转每对括号间的子串 题目描述这是 LeetCode 上的 1190. 反转每对括号间的子串 ,难度为 中等。 给出一个字符串 s(仅含有小写英文字母和括号)。 请你按照从括号内到外的顺序,逐层反转每对匹配括号中的字符串,并返回最终的结果。 注意,您的结果中不应包含任何括号。 示例 1:123输入:s = "(abcd)"输出:"dcba"示例 2:123输入:s = " 2021-05-26 栈 双端队列
LC 1787. 使所有区间的异或结果为零 题目描述这是 LeetCode 上的 1787. 使所有区间的异或结果为零 ,难度为 困难。 给你一个整数数组 nums 和一个整数 k 。区间 [left, right]``(left <= right)的异或结果是对下标位于 left 和 right(包括 left 和 right )之间所有元素进行 XOR 运算的结果:nums[left] XOR nums[left+1] XOR . 2021-05-25 数学 线性 DP 异或
LC 664. 奇怪的打印机 题目描述这是 LeetCode 上的 664. 奇怪的打印机 ,难度为 困难。 有台奇怪的打印机有以下两个特殊要求: 打印机每次只能打印由 同一个字符 组成的序列。 每次可以在任意起始和结束位置打印新字符,并且会覆盖掉原来已有的字符。 给你一个字符串 s,你的任务是计算这个打印机打印它需要的最少打印次数。 示例 1:12345输入:s = "aaabbb"输出:2解释:首先 2021-05-24 区间 DP
LC 1707. 与数组中元素的最大异或值 题目描述这是 LeetCode 上的 1707. 与数组中元素的最大异或值 ,难度为 困难。 Tag :「字典树」、「二分」 给你一个由非负整数组成的数组 $nums$ 。另有一个查询数组 $queries$,其中 $queries[i] = [xi, mi]$ 。 第 $i$ 个查询的答案是 $x_i$ 和任何 $nums$ 数组中不超过 $m_i$ 的元素按位异或(XOR)得到的最大值。 换句 2021-05-23
LC 810. 黑板异或游戏 题目描述这是 LeetCode 上的 810. 黑板异或游戏 ,难度为 困难。 黑板上写着一个非负整数数组 nums[i] 。 Alice 和 Bob 轮流从黑板上擦掉一个数字,Alice 先手。 如果擦除一个数字后,剩余的所有数字按位异或运算得出的结果等于 0 的话,当前玩家游戏失败。 (另外,如果只剩一个数字,按位异或运算得到它本身;如果无数字剩余,按位异或运算结果为 0。) 换种说法就是,轮 2021-05-22 数学 博弈论 异或
LC 1035. 不相交的线 题目描述这是 LeetCode 上的 1035. 不相交的线 ,难度为 中等。 在两条独立的水平线上按给定的顺序写下 s1 和 s2 中的整数。 现在,可以绘制一些连接两个数字 $s1[i]$ 和 $s2[j]$ 的直线,这些直线需要同时满足满足: $s1[i] = s2[j]$ 且绘制的直线不与任何其他连线(非水平线)相交。 请注意,连线即使在端点也不能相交:每个数字只能属于一条连线。 以这 2021-05-21 序列 DP 最长公共子序列 LCS
LC 692. 前K个高频单词 题目描述这是 LeetCode 上的 692. 前K个高频单词 ,难度为 中等。 给一非空的单词列表,返回前 k 个出现次数最多的单词。 返回的答案应该按单词出现频率由高到低排序。 如果不同的单词有相同出现频率,按字母顺序排序。 示例 1:123456输入: ["i", "love", "leetcode", "i", 2021-05-20 哈希表 优先队列(堆)
LC 1738. 找出第 K 大的异或坐标值 题目描述这是 LeetCode 上的 1738. 找出第 K 大的异或坐标值 ,难度为 中等。 给你一个二维矩阵 matrix 和一个整数 k ,矩阵大小为 m x n 由非负整数组成。 矩阵中坐标 (a, b) 的 值 可由对所有满足 0 <= i <= a < m 且 0 <= j <= b < n 的元素 matrix[i][j](下标从 0 开始计数)执 2021-05-19 前缀和 数学 Top K
LC 44. 通配符匹配 题目描述这是 LeetCode 上的 44. 通配符匹配 ,难度为 困难。 给定一个字符串 (s) 和一个字符模式 (p) ,实现一个支持 '?' 和 '*' 的通配符匹配。 '?' 可以匹配任何单个字符。 '*' 可以匹配任意字符串(包括空字符串)。 两个字符串完全匹配才算匹配成功。 说明: s 可能为空,且只包含从 a-z 2021-05-18 动态规划 序列 DP
LC 1442. 形成两个异或相等数组的三元组数目 题目描述这是 LeetCode 上的 1442. 形成两个异或相等数组的三元组数目 ,难度为 中等。 给你一个整数数组 arr。 现需要从数组中取三个下标 i、j 和 k,其中 (0 <= i < j <= k < arr.length) 。 a 和 b 定义如下: a = arr[i] ^ arr[i + 1] ^ ... ^ arr[j - 1] b = arr[j] 2021-05-18 前缀和 数学
LC 993. 二叉树的堂兄弟节点 题目描述这是 LeetCode 上的 993. 二叉树的堂兄弟节点 ,难度为 简单。 在二叉树中,根节点位于深度 $0$ 处,每个深度为 $k$ 的节点的子节点位于深度 $k+1$ 处。 如果二叉树的两个节点深度相同,但 父节点不同 ,则它们是一对堂兄弟节点。 我们给出了具有唯一值的二叉树的根节点 $root$ ,以及树中两个不同节点的值 $x$ 和 $y$ 。 只有与值 $x$ 和 $y$ 对应 2021-05-17 DFS BFS 树的搜索
LC 421. 数组中两个数的最大异或值 题目描述这是 LeetCode 上的 421. 数组中两个数的最大异或值 ,难度为 中等。 给你一个整数数组 $nums$ ,返回 nums[i] XOR nums[j] 的最大运算结果,其中 $0 ≤ i ≤ j < n$ 。 进阶:你可以在 $O(n)$ 的时间解决这个问题吗? 示例 1:12345输入:nums = [3,10,5,25,2,8]输出:28解释:最大运算结果是 5 XO 2021-05-16 贪心 字典树