LC 1893. 检查是否区域内所有整数都被覆盖 题目描述这是 LeetCode 上的 1893. 检查是否区域内所有整数都被覆盖 ,难度为 简单。 给你一个二维整数数组 ranges 和两个整数 left 和 right。每个 $ranges[i] = [start_i, end_i]$ 表示一个从 $start_i$ 到 $end_i$ 的 闭区间 。 如果闭区间 $[left, right]$ 内每个整数都被 ranges 中 至少一个 区 2021-07-23 模拟 线段树 树状数组
LC 138. 复制带随机指针的链表 题目描述这是 LeetCode 上的 138. 复制带随机指针的链表 ,难度为 中等。 给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random,该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 next 指针和 random 指针也都应指向复制链表中的新节点,并使 2021-07-22 哈希表 链表
LC 剑指 Offer 52. 两个链表的第一个公共节点 题目描述这是 LeetCode 上的 剑指 Offer 52. 两个链表的第一个公共节点 ,难度为 简单。 输入两个链表,找出它们的第一个公共节点。 如下面的两个链表: 在节点 c1 开始相交。 示例 1: 12345输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Re 2021-07-21 链表
LC 1877. 数组中最大数对和的最小值 题目描述这是 LeetCode 上的 1877. 数组中最大数对和的最小值 ,难度为 中等。 一个数对 (a,b) 的数对和等于 a + b。 最大数对和是一个数对数组中最大的数对和。 比方说,如果我们有数对 (1,5) ,(2,3) 和 (4,4),最大数对和 为 max(1+5, 2+3, 4+4) = max(6, 5, 8) = 8。 给你一个长度为偶数 n 的数组 nums,请你将 nu 2021-07-20 贪心
LC 1838. 最高频元素的频数 题目描述这是 LeetCode 上的 1838. 最高频元素的频数 ,难度为 中等。 元素的频数是该元素在一个数组中出现的次数。 给你一个整数数组 $nums$ 和一个整数 $k$ 。 在一步操作中,你可以选择 $nums$ 的一个下标,并将该下标对应元素的值增加 $1$ 。 执行最多 $k$ 次操作后,返回数组中最高频元素的最大可能频数。 示例 1:123456输入:nums = [1,2,4] 2021-07-19 哈希表 双指针 滑动窗口 二分 前缀和 枚举 排序
LC 面试题 10.02. 变位词组 题目描述这是 LeetCode 上的 面试题 10.02. 变位词组 ,难度为 中等。 编写一种方法,对字符串数组进行排序,将所有变位词组合在一起。变位词是指字母相同,但排列不同的字符串。 注意:本题相对原题稍作修改 示例:12345678输入: ["eat", "tea", "tan", "ate", "n 2021-07-18 哈希表 数学 排序 打表 计数
LC 剑指 Offer 42. 连续子数组的最大和 题目描述这是 LeetCode 上的 剑指 Offer 42. 连续子数组的最大和 ,难度为 简单。 输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。 要求时间复杂度为$O(n)$。 示例1:12345输入: nums = [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 提示: 1 < 2021-07-17 线性 DP
LC 剑指 Offer 53 - I. 在排序数组中查找数字 I 题目描述这是 LeetCode 上的 剑指 Offer 53 - I. 在排序数组中查找数字 I ,难度为 简单。 统计一个数字在排序数组中出现的次数。 示例 1:123输入: nums = [5,7,7,8,8,10], target = 8输出: 2示例 2:123输入: nums = [5,7,7,8,8,10], target = 6输出: 0 限制: 0 <= 数组长度 < 2021-07-16 二分
LC 1846. 减小和重新排列数组后的最大元素 题目描述这是 LeetCode 上的 1846. 减小和重新排列数组后的最大元素 ,难度为 中等。 给你一个正整数数组 arr。 请你对 arr 执行一些操作(也可以不进行任何操作),使得数组满足以下条件: arr 中 第一个 元素必须为 1 。 任意相邻两个元素的差的绝对值 小于等于 $1$ ,也就是说,对于任意的 $1 <= i < arr.length$ (数组下标从 $0$ 2021-07-15 贪心
LC 1818. 绝对差值和 题目描述这是 LeetCode 上的 1818. 绝对差值和 ,难度为 中等。 给你两个正整数数组 nums1 和 nums2,数组的长度都是 n 。 数组 nums1 和 nums2 的绝对差值和定义为所有 |nums1[i] - nums2[i]|(0 <= i < n)的总和(下标从 0 开始)。 你可以选用 nums1 中的任意一个元素来替换 nums1 中的至多一个元素,以最 2021-07-14 二分
LC 1155. 掷骰子的N种方法 题目描述这是 LeetCode 上的 1154. 一年中的第几天 ,难度为简单。 给你一个字符串 date,按 YYYY-MM-DD 格式表示一个 现行公元纪年法 日期。 请你计算并返回该日期是当年的第几天。 通常情况下,我们认为 1 月 1 日是每年的第 1 天,1 月 2 日是每年的第 2 天,依此类推。每个月的天数与现行公元纪年法(格里高利历)一致。 示例 1:123输入:date = &q 2021-07-13 模拟 前缀和
LC 1155. 掷骰子的N种方法 题目描述这是 LeetCode 上的 1155. 掷骰子的N种方法 ,难度为中等。 这里有 d 个一样的骰子,每个骰子上都有 f 个面,分别标号为 1,2,...,f。 我们约定:掷骰子的得到总点数为各骰子面朝上的数字的总和。 如果需要掷出的总点数为 target,请你计算出有多少种不同的组合情况(所有的组合情况总共有 $f^d$ 种),模 $10^9 + 7$ 后返回。 示例 1:123输入:d 2021-07-13 动态规划 背包问题 分组背包
LC 218. 天际线问题 题目描述这是 LeetCode 上的 218. 天际线问题 ,难度为 困难。 城市的天际线是从远处观看该城市中所有建筑物形成的轮廓的外部轮廓。 给你所有建筑物的位置和高度,请返回由这些建筑物形成的 天际线 。 每个建筑物的几何信息由数组 buildings 表示,其中三元组 buildings[i] = [lefti, righti, heighti] 表示: left[i] 是第 i 座建筑物 2021-07-13 优先队列(堆) 扫描线问题
LC 981. 基于时间的键值存储 题目描述这是 LeetCode 上的 981. 基于时间的键值存储 ,难度为 中等。 创建一个基于时间的键值存储类 TimeMap,它支持下面两个操作: set(string key, string value, int timestamp) 存储键 key、值 value,以及给定的时间戳 timestamp。 get(string key, int timestamp) 返回先前调用 s 2021-07-10 哈希表 二分 红黑树 数组 设计数据结构
LC 面试题 17.10. 主要元素 题目描述这是 LeetCode 上的 面试题 17.10. 主要元素 ,难度为 简单。 数组中占比超过一半的元素称之为主要元素。给你一个 整数 数组,找出其中的主要元素。 若没有,返回 -1 。请设计时间复杂度为 $O(N)$ 、空间复杂度为 $O(1)$ 的解决方案。 示例 1:123输入:[1,2,5,9,5,9,5,5,5]输出:5示例 2:123输入:[3,2]输出:-1示例 3:123输 2021-07-09 哈希表 摩尔投票