LC 1694. 重新格式化电话号码 题目描述这是 LeetCode 上的 1694. 重新格式化电话号码 ,难度为 简单。 给你一个字符串形式的电话号码 number。number 由数字、空格 ' '、和破折号 '-' 组成。 请你按下述方式重新格式化电话号码。 首先,删除 所有的空格和破折号。 其次,将数组从左到右 每 3 个一组 分块,直到 剩下 4 个或更少数字。剩下的数字将按下述规定再分块: 2022-10-01 模拟
LC 面试题 01.08. 零矩阵 题目描述这是 LeetCode 上的 面试题 01.08. 零矩阵 ,难度为 中等。 编写一种算法,若 $M \times N$ 矩阵中某个元素为 $0$,则将其所在的行与列清零。 示例 1:12345678910111213输入:[ [1,1,1], [1,0,1], [1,1,1]]输出:[ [1,0,1], [0,0,0], [1,0,1]]示例 2:12345678910111 2022-09-30 模拟
LC 面试题 01.09. 字符串轮转 题目描述这是 LeetCode 上的 面试题 01.09. 字符串轮转 ,难度为 简单。 字符串轮转。给定两个字符串 s1 和 s2,请编写代码检查 s2 是否为 s1 旋转而成(比如,waterbottle 是 erbottlewat 旋转后的字符串)。 示例1:123输入:s1 = "waterbottle", s2 = "erbottlewat"输出: 2022-09-29 字符串哈希
LC 84. 柱状图中最大的矩形 题目描述这是 LeetCode 上的 84. 柱状图中最大的矩形 ,难度为 困难。 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 示例 1: 12345输入:heights = [2,1,5,6,2,3]输出:10解释:最大的矩形为图中红色区域,面积为 10 示例 2: 123输入: heights = [ 2022-09-28 单调栈
LC 739. 每日温度 题目描述这是 LeetCode 上的 739. 每日温度 ,难度为 中等。 给定一个整数数组 temperatures,表示每天的温度,返回一个数组 answer,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。 示例 1:123输入: temperatures = [73,74,75,71,69,72,76,73]输 2022-09-28 单调栈
LC 面试题 17.09. 第 k 个数 题目描述这是 LeetCode 上的 面试题 17.09. 第 k 个数 ,难度为 困难。 有些数的素因子只有 3,5,7,请设计一个算法找出第 k 个数。注意,不是必须有这些素因子,而是必须不包含其他的素因子。例如,前几个数按顺序应该是 1,3,5,7,9,15,21。 示例 1:123输入: k = 5输出: 9 基本分析本题的基本思路与 264. 丑数 II : 从朴素优先队列到多路归并 2022-09-28 双指针 优先队列(堆) 多路归并
LC 面试题 01.02. 判定是否互为字符重排 题目描述这是 LeetCode 上的 面试题 01.02. 判定是否互为字符重排 ,难度为 简单。 给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。 示例 1:123输入: s1 = "abc", s2 = "bca"输出: true 示例 2:123输入: s1 = "abc", 2022-09-27 模拟
LC 面试题 17.19. 消失的两个数字 题目描述这是 LeetCode 上的 面试题 17.19. 消失的两个数字 ,难度为 困难。 给定一个数组,包含从 1 到 N 所有的整数,但其中缺了两个数字。你能在 $O(N)$ 时间内只用 $O(1)$ 的空间找到它们吗? 以任意顺序返回这两个数字均可。 示例 1:123输入: [1]输出: [2,3]示例 2:123输入: [2,3]输出: [1,4]提示: $nums.length &l 2022-09-26 数学 位运算
LC 788. 旋转数字 题目描述这是 LeetCode 上的 788. 旋转数字 ,难度为 中等。 我们称一个数 X 为好数, 如果它的每位数字逐个地被旋转 180 度后,我们仍可以得到一个有效的,且和 X 不同的数。要求每位数字都要被旋转。 如果一个数的每位数字被旋转以后仍然还是一个数字, 则这个数是有效的。0, 1, 和 8 被旋转后仍然是它们自己;2 和 5 可以互相旋转成对方(在这种情况下,它们以不同的方向旋转, 2022-09-25 模拟
LC 1652. 拆炸弹 题目描述这是 LeetCode 上的 1652. 拆炸弹 ,难度为 简单。 你有一个炸弹需要拆除,时间紧迫! 你的情报员会给你一个长度为 n 的 循环 数组 code 以及一个密钥 k 。 为了获得正确的密码,你需要替换掉每一个数字。所有数字会 同时 被替换。 如果 $k > 0$,将第 i 个数字用 接下来 k 个数字之和替换。 如果 $k < 0$,将第 i 个数字用 之前 k 2022-09-24 模拟 前缀和
LC 707. 设计链表 题目描述这是 LeetCode 上的 707. 设计链表 ,难度为 中等。 设计链表的实现。您可以选择使用单链表或双链表。 单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。 如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。 在链表类中实现这些功能: get 2022-09-23 链表
LC 1640. 能否连接形成数组 题目描述这是 LeetCode 上的 1640. 能否连接形成数组 ,难度为 简单。 给你一个整数数组 arr ,数组中的每个整数 互不相同 。 另有一个由整数数组构成的数组 pieces,其中的整数也互不相同。 请你以任意顺序连接 pieces 中的数组以形成 arr 。 但是,不允许对每个数组 pieces[i] 中的整数重新排序。 如果可以连接 pieces 中的数组形成 arr ,返回 t 2022-09-22 哈希表 模拟 二分 排序
LC 854. 相似度为 K 的字符串 题目描述这是 LeetCode 上的 854. 相似度为 K 的字符串 ,难度为 困难。 对于某些非负整数 k ,如果交换 $s_1$ 中两个字母的位置恰好 k 次,能够使结果字符串等于 $s_2$ ,则认为字符串 $s_1$ 和 $s_2$ 的 相似度为 k 。 给你两个字母异位词 $s_1$ 和 $s_2$ ,返回 $s_1$ 和 $s_2$ 的相似度 k 的最小值。 示例 1:123输入:s 2022-09-21 启发式搜索 AStar 算法
LC 698. 划分为k个相等的子集 题目描述这是 LeetCode 上的 698. 划分为k个相等的子集 ,难度为 中等。 给定一个整数数组 nums 和一个正整数 k,找出是否有可能把这个数组分成 k 个非空子集,其总和都相等。 示例 1:12345输入: nums = [4, 3, 2, 3, 5, 2, 1], k = 4输出: True说明: 有可能将其分成 4 个子集(5),(1,4),(2,3),(2,3)等于总和。示 2022-09-20 贪心 剪枝 回溯算法 模拟退火 启发式搜索 爆搜 搜索
LC 1636. 按照频率将数组升序排序 题目描述这是 LeetCode 上的 1636. 按照频率将数组升序排序 ,难度为 简单。 给你一个整数数组 nums,请你将数组按照每个值的频率 升序 排序。如果有多个值的频率相同,请你按照数值本身将它们 降序 排序。 请你返回排序后的数组。 示例 1:12345输入:nums = [1,1,2,2,2,3]输出:[3,1,1,2,2,2]解释:'3' 频率为 1, 2022-09-19 哈希表 模拟 排序