LC 1208. 尽可能使字符串相等 题目描述这是 LeetCode 上的 1208. 尽可能使字符串相等 ,难度为 中等。 给你两个长度相同的字符串,s 和 t。 将 s 中的第 i 个字符变到 t 中的第 i 个字符需要 |s[i] - t[i]| 的开销(开销可能为 0),也就是两个字符的 ASCII 码值的差的绝对值。 用于变更字符串的最大预算是 maxCost。 在转化字符串时,总开销应当小于等于该预算,这也意味着字符串的转 2021-02-04 滑动窗口 二分 前缀和
LC 643. 子数组最大平均数 I 题目描述这是 LeetCode 上的 643. 子数组最大平均数 I ,难度为 简单。 给定 n 个整数,找出平均数最大且长度为 k 的连续子数组,并输出该最大平均数。 示例:12345输入:[1,12,-5,-6,50,3], k = 4输出:12.75解释:最大平均数 (12-5-6+50)/4 = 51/4 = 12.75 提示: $1 <= k <= n <= 3000 2021-02-03 滑动窗口
LC 43. 字符串相乘 题目描述这是 LeetCode 上的 43. 字符串相乘 ,难度为 中等。 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 示例 1:123输入: num1 = "2", num2 = "3"输出: "6"示例 2:123输入: num1 = "1 2021-02-03 模拟 数学
LC 480. 滑动窗口中位数 题目描述这是 LeetCode 上的 480. 滑动窗口中位数 ,难度为 困难。 中位数是有序序列最中间的那个数。如果序列的长度是偶数,则没有最中间的数;此时中位数是最中间的两个数的平均数。 例如: $[2,3,4]$,中位数是 $3$ $[2,3]$,中位数是 $(2 + 3) / 2 = 2.5$ 给你一个数组 $nums$,有一个长度为 $k$ 的窗口从最左端滑动到最右端。 窗口中有 2021-02-03 滑动窗口 优先队列(堆)
LC 42. 接雨水 题目描述这是 LeetCode 上的 42. 接雨水 ,难度为 困难。 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 12345输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨 2021-02-02 模拟 数学 单调栈
LC 424. 替换后的最长重复字符 题目描述这是 LeetCode 上的 424. 替换后的最长重复字符 ,难度为 中等。 给你一个仅由大写英文字母组成的字符串,你可以将任意位置上的字符替换成另外的字符,总共可最多替换 k 次。 在执行上述操作后,找到包含重复字母的最长子串的长度。 示例 1:12345输入:s = "ABAB", k = 2输出:4解释:用两个'A'替换为两个'B& 2021-02-02 双指针 滑动窗口
LC 41. 缺失的第一个正数 题目描述这是 LeetCode 上的 41. 缺失的第一个正数 ,难度为 困难。 给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。 进阶:你可以实现时间复杂度为 $O(n)$ 并且只使用常数级别额外空间的解决方案吗? 示例 1:123输入:nums = [1,2,0]输出:3示例 2:123输入:nums = [3,4,-1,1]输出:2示例 3:123输入:nums 2021-02-01 桶排序 原地哈希
LC 40. 组合总和 II 题目描述这是 LeetCode 上的 40. 组合总和 II ,难度为 中等。 给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用一次。 说明: 所有数字(包括目标数)都是正整数。 解集不能包含重复的组合。 示例 1: 123456789输入: ca 2021-01-31 DFS 回溯算法 组合总和问题
LC 39. 组合总和 题目描述这是 LeetCode 上的 39. 组合总和 ,难度为 中等。 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复被选取。 说明: 所有数字(包括 target)都是正整数。 解集不能包含重复的组合。 示例 1:1234567输入:can 2021-01-31 DFS 回溯算法 组合总和问题
LC 37. 解数独 题目描述这是 LeetCode 上的 37. 解数独 ,难度为 困难。 编写一个程序,通过填充空格来解决数独问题。 数独的解法需 遵循如下规则: 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3 x 3 宫内只能出现一次。(请参考示例图) 数独部分空格内已填入了数字,空白格用 ‘.’ 表示。 示例: 123456789101 2021-01-29 DFS 回溯算法 数独问题
LC 36. 有效的数独 题目描述这是 LeetCode 上的 36. 有效的数独 ,难度为 中等。 请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3 x 3 宫内只能出现一次。(请参考示例图) 数独部分空格内已填入了数字,空白格用 '.' 2021-01-29 哈希表 位运算 数组 数独问题
LC 35. 搜索插入位置 题目描述这是 LeetCode 上的 35. 搜索插入位置 ,难度为 简单。 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。 如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。 示例 1:123输入: [1,3,5,6], 5输出: 2示例 2:123输入: [1,3,5,6], 2输出: 1示例 3:123输入: [1,3,5,6], 7输出 2021-01-29 模拟 二分
LC 1631. 最小体力消耗路径 题目描述这是 LeetCode 上的 1631. 最小体力消耗路径 ,难度为 中等。 你准备参加一场远足活动。 给你一个二维 rows x columns 的地图 heights,其中 heights[row][col] 表示格子 (row, col) 的高度。 一开始你在最左上角的格子 (0, 0) ,且你希望去最右下角的格子 (rows-1, columns-1) (注意下标从 0 开始编号) 2021-01-29 并查集 最小生成树 Kruskal
LC 724. 寻找数组的中心下标 题目描述这是 LeetCode 上的 724. 寻找数组的中心下标 ,难度为 中等。 给你一个整数数组 nums,请编写一个能够返回数组 “中心下标” 的方法。 数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。 如果数组不存在中心下标,返回 -1 。 如果数组有多个中心下标,应该返回最靠近左边的那一个。 注意:中心下标可能出现在数组的两端。 示例 1:123456 2021-01-27 前缀和
LC 32. 最长有效括号 题目描述这是 LeetCode 上的 32. 最长有效括号 ,难度为 困难。 给你一个只包含 '(' 和 ')' 的字符串,找出最长有效(格式正确且连续)括号子串的长度。 示例 1:12345输入:s = "(()"输出:2解释:最长有效括号子串是 "()"示例 2:12345输入:s = ")()())" 2021-01-26 栈 括号问题