LC 1460. 通过翻转子数组使两个数组相等 题目描述这是 LeetCode 上的 1460. 通过翻转子数组使两个数组相等 ,难度为 简单。 给你两个长度相同的整数数组 target 和 arr 。每一步中,你可以选择 arr 的任意 非空子数组 并将它翻转。你可以执行此过程任意次。 如果你能让 arr 变得与 target 相同,返回 True;否则,返回 False 。 示例 1:123456789输入:target = [1,2,3, 2022-08-24 模拟 计数
LC 782. 变为棋盘 题目描述这是 LeetCode 上的 782. 变为棋盘 ,难度为 困难。 一个 n x n 的二维网络 board 仅由 0 和 1 组成 。每次移动,你能任意交换两列或是两行的位置。 返回 将这个矩阵变为 “棋盘” 所需的最小移动次数 。如果不存在可行的变换,输出 -1。 “棋盘” 是指任意一格的上下左右四个方向的值均与本身不同的矩阵。 示例 1:1234567输入: board = [[ 2022-08-23 构造
LC 655. 输出二叉树 题目描述这是 LeetCode 上的 655. 输出二叉树 ,难度为 中等。 给你一棵二叉树的根节点 root,请你构造一个下标从 0 开始、大小为 $m \times n$ 的字符串矩阵 res,用以表示树的格式化布局。 构造此格式化布局矩阵需要遵循以下规则: 树的高度为 height,矩阵的行数 m 应该等于 $height + 1$。 矩阵的列数 n 应该等于 $2^{height+1 - 2022-08-22 二叉树 递归
LC 剑指 Offer II 007. 数组中和为 0 的三个数 题目描述这是 LeetCode 上的 剑指 Offer II 007. 数组中和为 0 的三个数 ,难度为 中等。 给你一个包含 $n$ 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ? 请你找出所有和为 $0$ 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例 1:123输入:nums = [-1,0,1,2,-1,-4 2022-08-21 双指针 排序 n 数之和
LC 剑指 Offer II 008. 和大于等于 target 的最短子数组 题目描述这是 LeetCode 上的 剑指 Offer II 008. 和大于等于 target 的最短子数组 ,难度为 中等。 给定一个含有 n 个正整数的数组和一个正整数 target。 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 $[nums{l}, nums{l+1}, …, nums{r-1}, nums{r}]$ ,并返回其长度。如果不存在符合条件的子数组,返回 2022-08-21 二分 前缀和
LC 剑指 Offer II 009. 乘积小于 K 的子数组 题目描述这是 LeetCode 上的 剑指 Offer II 009. 乘积小于 K 的子数组 ,难度为 中等。 给你一个整数数组 nums 和一个整数 $k$ ,请你返回子数组内所有元素的乘积严格小于 $k$ 的连续子数组的数目。 示例 1:123456输入:nums = [10,5,2,6], k = 100输出:8解释:8 个乘积小于 100 的子数组分别为:[10]、[5]、[2],、[6 2022-08-21 双指针 滑动窗口
LC 剑指 Offer II 010. 和为 k 的子数组 题目描述这是 LeetCode 上的 剑指 Offer II 010. 和为 k 的子数组 ,难度为 中等。 给你一个整数数组 nums 和一个整数 k ,请你统计并返回该数组中和为 k 的子数组的个数 。 示例 1:123输入:nums = [1,1,1], k = 2输出:2示例 2:123输入:nums = [1,2,3], k = 3输出:2 提示: $1 <= nums.leng 2022-08-21 哈希表 前缀和
LC 剑指 Offer II 011. 0 和 1 个数相同的子数组 题目描述这是 LeetCode 上的 剑指 Offer II 011. 0 和 1 个数相同的子数组 ,难度为 中等。 给定一个二进制数组 nums , 找到含有相同数量的 $0$ 和 $1$ 的最长连续子数组,并返回该子数组的长度。 示例 1:12345输入: nums = [0,1]输出: 2说明: [0, 1] 是具有相同数量0和1的最长连续子数组。示例 2:12345输入: nums = 2022-08-21 哈希表 前缀和
LC 1455. 检查单词是否为句中其他单词的前缀 题目描述这是 LeetCode 上的 1455. 检查单词是否为句中其他单词的前缀 ,难度为 简单。 给你一个字符串 sentence 作为句子并指定检索词为 searchWord,其中句子由若干用 单个空格 分隔的单词组成。请你检查检索词 searchWord 是否为句子 sentence 中任意单词的前缀。 如果 searchWord 是某一个单词的前缀,则返回句子 sentence 中该单词 2022-08-21 模拟 双指针
LC 654. 最大二叉树 题目描述这是 LeetCode 上的 654. 最大二叉树 ,难度为 中等。 给定一个不重复的整数数组 nums。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点,其值为 nums 中的最大值。 递归地在最大值 左边 的 子数组前缀上 构建左子树。 递归地在最大值 右边 的 子数组后缀上 构建右子树。 返回 nums 构建的最大二叉树。 示例 1:1234567891 2022-08-20 二叉树 分治 线段树 递归 单调栈
LC 1450. 在既定时间做作业的学生人数 题目描述这是 LeetCode 上的 1450. 在既定时间做作业的学生人数 ,难度为 简单。 给你两个整数数组 startTime(开始时间)和 endTime(结束时间),并指定一个整数 queryTime 作为查询时间。 已知,第 i 名学生在 startTime[i] 时开始写作业并于 endTime[i] 时完成作业。 请返回在查询时间 queryTime 时正在做作业的学生人数。形式上 2022-08-19 差分 区间求和问题
LC 1224. 最大相等频率 题目描述这是 LeetCode 上的 1224. 最大相等频率 ,难度为 困难。 给你一个正整数数组 nums,请你帮忙从该数组中找出能满足下面要求的最长前缀,并返回该前缀的长度: 从前缀中恰好删除一个元素后,剩下每个数字的出现次数都相同。 如果删除这个元素后没有剩余元素存在,仍可认为每个数字都具有相同的出现次数(也就是 $0$ 次)。 示例 1:12345输入:nums = [2,2,1,1 2022-08-18 哈希表 模拟 计数
LC 1302. 层数最深叶子节点的和 题目描述这是 LeetCode 上的 1302. 层数最深叶子节点的和 ,难度为 中等。 给你一棵二叉树的根节点 root,请你返回 层数最深的叶子节点的和 。 示例 1:123输入:root = [1,2,3,4,5,null,6,7,null,null,null,null,8]输出:15示例 2:123输入:root = [6,7,8,2,7,1,3,9,null,1,4,null,null, 2022-08-17 DFS BFS 树的遍历
LC 1656. 设计有序流 题目描述这是 LeetCode 上的 1656. 设计有序流 ,难度为 简单。 有 n 个 (id, value) 对,其中 id 是 1 到 n 之间的一个整数,value 是一个字符串。不存在 id 相同的两个 (id, value) 对。 设计一个流,以任意顺序获取 n 个 (id, value) 对,并在多次调用时按 id 递增的顺序返回一些值。 实现 OrderedStream 类: 2022-08-16 模拟
LC 641. 设计循环双端队列 题目描述这是 LeetCode 上的 641. 设计循环双端队列 ,难度为 中等。 设计实现双端队列。 实现 MyCircularDeque 类: MyCircularDeque(int k) :构造函数,双端队列最大为 $k$ 。 boolean insertFront():将一个元素添加到双端队列头部。 如果操作成功返回 true ,否则返回 false 。 boolean insertLa 2022-08-15 链表 数据结构 数组