LC 485. 最大连续 1 的个数 题目描述这是 LeetCode 上的 485. 最大连续 1 的个数 ,难度为 简单。 给定一个二进制数组, 计算其中最大连续 1 的个数。 示例:123输入:[1,1,0,1,1,1]输出:3解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3. 提示: 输入的数组只包含 0 和 1 。 输入数组的长度是正整数,且不超过 10,000。 双指针解法 使用 i 和 j 2021-02-15 双指针
LC 765. 情侣牵手 题目描述这是 LeetCode 上的 765. 情侣牵手 ,难度为 困难。 N 对情侣坐在连续排列的 2N 个座位上,想要牵到对方的手。 计算最少交换座位的次数,以便每对情侣可以并肩坐在一起。 一次交换可选择任意两人,让他们站起来交换座位。 人和座位用 0 到 2N-1 的整数表示,情侣们按顺序编号,第一对是 (0, 1),第二对是 (2, 3),以此类推,最后一对是 (2N-2, 2N-1)。 2021-02-14 贪心 并查集
LC 448. 找到所有数组中消失的数字 题目描述这是 LeetCode 上的 448. 找到所有数组中消失的数字 ,难度为 简单。 给定一个范围在 $1 ≤ a[i] ≤ n$ ( $n$ = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。 找到所有在 $[1, n]$ 范围之间没有出现在数组中的数字。 您能在不使用额外空间且时间复杂度为 $O(n)$ 的情况下完成这个任务吗? 你可以假定返回的数组不算在额 2021-02-13 排序 原地哈希
LC 119. 杨辉三角 II 题目描述这是 LeetCode 上的 119. 杨辉三角 II ,难度为 简单。 给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。 在杨辉三角中,每个数是它左上方和右上方的数的和。 示例:12输入: 3输出: [1,3,3,1]进阶: 你可以优化你的算法到 O(k) 空间复杂度吗? 动态规划12345678910111213141516class Solution  2021-02-12 数学 线性 DP
LC 703. 数据流中的第 K 大元素 题目描述这是 LeetCode 上的 703. 数据流中的第 K 大元素 ,难度为 简单。 设计一个找到数据流中第 k 大元素的类(class)。注意是排序后的第 k 大元素,不是第 k 个不同的元素。 请实现 KthLargest 类: KthLargest(int k, int[] nums) 使用整数 k 和整数流 nums 初始化对象。 int add(int val) 将 val 插入 2021-02-11 优先队列(堆) 排序 Top K
LC 567. 字符串的排列 题目描述这是 LeetCode 上的 567. 字符串的排列 ,难度为 中等。 给定两个字符串 s1 和 s2,写一个函数来判断 s2 是否包含 s1 的排列。 换句话说,第一个字符串的排列之一是第二个字符串的 子串 。 示例 1:123输入: s1 = "ab" s2 = "eidbaooo"输出: True解释: s2 包含 s1 的排列之一 (&quo 2021-02-09 滑动窗口
LC 992. K 个不同整数的子数组 题目描述这是 LeetCode 上的 992. K 个不同整数的子数组 ,难度为 困难。 给定一个正整数数组 $A$,如果 $A$ 的某个子数组中不同整数的个数恰好为 $K$,则称 $A$ 的这个连续、不一定不同的子数组为好子数组。 例如,$[1,2,3,1,2]$ 中有 $3$ 个不同的整数:$1$,$2$,以及 $3$。 返回 $A$ 中好子数组的数目。 示例 1:12345输入:A = [1 2021-02-09 双指针 滑动窗口
LC 978. 最长湍流子数组 题目描述这是 LeetCode 上的 978. 最长湍流子数组 ,难度为 中等。 当 A 的子数组 $A[i], A[i+1], …, A[j]$ 满足下列条件时,我们称其为湍流子数组: 若 $i <= k < j$,当 $k$ 为奇数时,$A[k] > A[k+1]$,且当 $k$ 为偶数时,$A[k] < A[k+1]$; 若 $i <= k < j$,当 2021-02-08 序列 DP 线性 DP
LC 1749. 任意子数组和的绝对值的最大值 题目描述这是 LeetCode 上的 1749. 任意子数组和的绝对值的最大值 ,难度为 中等。 给你一个整数数组 nums 。 一个子数组 [numsl, numsl+1, ..., numsr-1, numsr] 的「和的绝对值」为 abs(numsl + numsl+1 + ... + numsr-1 + numsr)。 请你找出 nums 中 和的绝对值 最大的任意子数组(可能为空),并返 2021-02-07 前缀和
LC 1748. 唯一元素的和 题目描述这是 LeetCode 上的 1748. 唯一元素的和 ,难度为 简单。 给你一个整数数组 nums 。数组中唯一元素是那些只出现「恰好一次」的元素。 请你返回 nums 中唯一元素的和 。 示例 1:12345输入:nums = [1,2,3,2]输出:4解释:唯一元素为 [1,3] ,和为 4 。示例 2:12345输入:nums = [1,1,1,1,1]输出:0解释:没有唯一元素, 2021-02-07 哈希表 模拟 双指针 排序
LC 1751. 最多可以参加的会议数目 II 题目描述这是 LeetCode 上的 1751. 最多可以参加的会议数目 II ,难度为 困难。 给你一个 events 数组,其中 $events[i] = [startDay_i, endDay_i, value_i]$ ,表示第 $i$ 个会议在 $startDay_i$ 天开始,第 $endDay_i$ 天结束,如果你参加这个会议,你能得到价值 $value_i$ 。 同时给你一个整数 $ 2021-02-07 序列 DP 二分
LC 45. 跳跃游戏 II 题目描述这是 LeetCode 上的 45. 跳跃游戏 II ,难度为 中等。 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 你的目标是使用最少的跳跃次数到达数组的最后一个位置。 假设你总是可以到达数组的最后一个位置。 示例 1:123456输入: [2,3,1,1,4]输出: 2解释: 跳到最后一个位置的最小跳跃数是 2。 从下标 2021-02-06 双指针 贪心 线性 DP
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 <= 30,00 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 模拟 数学