LC 剑指 Offer II 005. 单词长度的最大乘积 题目描述这是 LeetCode 上的 剑指 Offer II 005. 单词长度的最大乘积 ,难度为 中等。 Tag :「模拟」、「位运算」 给定一个字符串数组 words,请计算当两个字符串 words[i] 和 words[j] 不包含相同字符时,它们长度的乘积的最大值。假设字符串中只包含英语的小写字母。如果没有不包含相同字符的一对字符串,返回 $0$。 示例 1:12345输入: words 2022-08-14
LC 剑指 Offer II 067. 最大的异或 题目描述这是 LeetCode 上的 剑指 Offer II 067. 最大的异或 ,难度为 中等。 给定一个整数数组 nums,返回 nums[i] XOR nums[j] 的最大运算结果,其中 $0 ≤ i ≤ j < n$ 。 示例 1:12345输入:nums = [3,10,5,25,2,8]输出:28解释:最大运算结果是 5 XOR 25 = 28.示例 2:123输入:nums 2022-08-14 贪心 字典树
LC 1422. 分割字符串的最大得分 题目描述这是 LeetCode 上的 1422. 分割字符串的最大得分 ,难度为 简单。 给你一个由若干 0 和 1 组成的字符串 s ,请你计算并返回将该字符串分割成两个非空子字符串(即左子字符串和右子字符串)所能获得的最大得分。 「分割字符串的得分」为左子字符串中 0 的数量加上右子字符串中 1 的数量。 示例 1:1234567891011输入:s = "011101"输 2022-08-14 模拟 前缀和
LC 剑指 Offer II 003. 前 n 个数字二进制中 1 的个数 题目描述这是 LeetCode 上的 剑指 Offer II 003. 前 n 个数字二进制中 1 的个数 ,难度为 简单。 Tag :「模拟」、「动态规划」 给定一个非负整数 n ,请计算 0 到 n 之间的每个数字的二进制表示中 $1$ 的个数,并输出一个数组。 示例 1:12345678输入: n = 2输出: [0,1,1]解释: 0 --> 01 --> 12 --> 2022-08-13
LC 768. 最多能完成排序的块 II 题目描述这是 LeetCode 上的 768. 最多能完成排序的块 II ,难度为 困难。 这个问题和“最多能完成排序的块”相似,但给定数组中的元素可以重复,输入数组最大长度为$2000$,其中的元素最大为 $10^8$。 arr 是一个可能包含重复元素的整数数组,我们将这个数组分割成几个“块”,并将这些块分别进行排序。 之后再连接起来,使得连接的结果和按升序排序后的原数组相同。 我们最多能将数组 2022-08-13 贪心
LC 1282. 用户分组 题目描述这是 LeetCode 上的 1282. 用户分组 ,难度为 中等。 有 n 个人被分成数量未知的组。每个人都被标记为一个从 $0$ 到 $n - 1$ 的唯一 ID 。 给定一个整数数组 groupSizes,其中 groupSizes[i] 是第 $i$ 个人所在的组的大小。例如,如果 groupSizes[1] = 3,则第 $1$ 个人必须位于大小为 $3$ 的组中。 返回一个 2022-08-12 哈希表 模拟 构造
LC 剑指 Offer 04. 二维数组中的查找 题目描述这是 LeetCode 上的 剑指 Offer 04. 二维数组中的查找 ,难度为 中等。 在一个 $n \times m$ 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 示例:123456789101112现有矩阵 matrix 如下:[ [1, 4, 7, 2022-08-11 二分 BST 二叉树搜索树
LC 1417. 重新格式化字符串 题目描述这是 LeetCode 上的 1417. 重新格式化字符串 ,难度为 简单。 给你一个混合了数字和字母的字符串 s,其中的字母均为小写英文字母。 请你将该字符串重新格式化,使得任意两个相邻字符的类型都不同。也就是说,字母后面应该跟着数字,而数字后面应该跟着字母。 请你返回重新格式化后的字符串;如果无法按要求重新格式化,则返回一个空字符串。 示例 1:12345输入:s = "a0 2022-08-11 模拟 双指针
LC 剑指 Offer 11. 旋转数组的最小数字 题目描述这是 LeetCode 上的 剑指 Offer 11. 旋转数组的最小数字 ,难度为 简单。 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 给你一个可能存在 重复 元素值的数组 numbers,它原来是一个升序排列的数组,并按上述情形进行了一次旋转。请返回旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一次旋转,该数组的最小值为 2022-08-10 二分
LC 剑指 Offer 53 - II. 0~n-1中缺失的数字 题目描述这是 LeetCode 上的 剑指 Offer 53 - II. 0~n-1中缺失的数字 ,难度为 简单。 一个长度为 $n-1$ 的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围 $[0, n-1]$ 之内。 在范围 $[0, n-1]$ 内的 $n$ 个数字中有且只有一个数字不在该数组中,请找出这个数字。 示例 1:123输入: [0,1,3]输出: 2示例 2:123输入: 2022-08-10 二分
LC 640. 求解方程 题目描述这是 LeetCode 上的 640. 求解方程 ,难度为 中等。 求解一个给定的方程,将 x 以字符串 "x=#value" 的形式返回。 该方程仅包含 '+' , '-' 操作,变量 x 和其对应系数。 如果方程没有解,请返回 "No solution"。如果方程有无限解,则返回 "Infinite so 2022-08-10 模拟 双指针 数学
LC 1413. 逐步求和得到正数的最小值 题目描述这是 LeetCode 上的 1413. 逐步求和得到正数的最小值 ,难度为 简单。 给你一个整数数组 nums。你可以选定任意的正数 startValue 作为初始值。 你需要从左到右遍历 nums 数组,并将 startValue 依次累加上 nums 数组中的值。 请你在确保累加和始终大于等于 $1$ 的前提下,选出一个最小的正数作为 startValue。 示例 1:1234567 2022-08-09 模拟
LC 剑指 Offer 44. 数字序列中某一位的数字 题目描述这是 LeetCode 上的 剑指 Offer 44. 数字序列中某一位的数字 ,难度为 中等。 数字以 0123456789101112131415… 的格式序列化到一个字符序列中。在这个序列中,第 $5$ 位(从下标 $0$ 开始计数)是 $5$,第 $13$ 位是 $1$,第 $19$ 位是 $4$,等等。 请写一个函数,求任意第 $n$ 位对应的数字。 示例 1:123输入:n = 2022-08-08 模拟 数学
LC 761. 特殊的二进制序列 题目描述这是 LeetCode 上的 761. 特殊的二进制序列 ,难度为 困难。 特殊的二进制序列是具有以下两个性质的二进制序列: 0 的数量与 1 的数量相等。 二进制序列的每一个前缀码中 1 的数量要大于等于 0 的数量。 给定一个特殊的二进制序列 S,以字符串形式表示。 定义一个操作为首先选择 S 的两个连续且非空的特殊的子串,然后将它们交换。(两个子串为连续的当且仅当第一个子串的最后 2022-08-08 构造
LC 636. 函数的独占时间 题目描述这是 LeetCode 上的 636. 函数的独占时间 ,难度为 中等。 有一个单线程 CPU 正在运行一个含有 n 道函数的程序。 每道函数都有一个位于 0 和 n-1 之间的唯一标识符。 函数调用存储在一个调用栈上 :当一个函数调用开始时,它的标识符将会推入栈中。而当一个函数调用结束时,它的标识符将会从栈中弹出。标识符位于栈顶的函数是当前正在执行的函数。每当一个函数开始或者结束时,将 2022-08-07 模拟 栈