随笔分类 - LeetCode
发表于 2021-08-12 14:17阅读:102评论:0推荐:0
摘要:406. 根据身高重建队列 知识点:贪心 题目描述 假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个 people[i] = [hi, ki] 表示第 i 个人的身高为 hi ,前面 正好 有 ki 个身高大于或等于 hi 的人。 请你重新构造并返
阅读全文 »
发表于 2021-08-12 14:02阅读:145评论:0推荐:0
摘要:134. 加油站 知识点:贪心;KMP 题目描述 在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。 如果你可以绕环路行驶一
阅读全文 »
发表于 2021-08-12 11:08阅读:84评论:0推荐:0
摘要:122. 买卖股票的最佳时机 II 知识点:贪心; 题目描述 给定一个数组 prices ,其中 prices[i] 是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之
阅读全文 »
发表于 2021-08-12 11:02阅读:103评论:0推荐:0
摘要:860. 柠檬水找零 知识点:贪心 题目描述 在柠檬水摊上,每一杯柠檬水的售价为 5 美元。 顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。 每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5
阅读全文 »
发表于 2021-08-12 10:47阅读:111评论:0推荐:0
摘要:376. 摆动序列 知识点:贪心 题目描述 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列 。第一个差(如果存在的话)可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。 例如, [1, 7, 4, 9, 2, 5] 是一个 摆动序列 ,因为差值 (6,
阅读全文 »
发表于 2021-08-12 10:36阅读:92评论:0推荐:0
摘要:452. 用最少数量的箭引爆气球 知识点:贪心 题目描述 在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以纵坐标并不重要,因此只要知道开始和结束的横坐标就足够了。开始坐标总是小于结束坐标。 一支弓箭可以沿着 x 轴从不同点完全垂直地射
阅读全文 »
发表于 2021-08-12 10:26阅读:87评论:0推荐:0
摘要:455. 分发饼干 知识点:贪心; 题目描述 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。 对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以
阅读全文 »
发表于 2021-08-12 09:58阅读:427评论:0推荐:0
摘要:424. 替换后的最长重复字符 知识点:字符串,滑动窗口; 题目描述 给你一个仅由大写英文字母组成的字符串,你可以将任意位置上的字符替换成另外的字符,总共可最多替换 k 次。在执行上述操作后,找到包含重复字母的最长子串的长度。 注意:字符串长度 和 k 不会超过 104。 示例 输入:s = "AB
阅读全文 »
发表于 2021-08-12 09:12阅读:671评论:2推荐:0
摘要:239. 滑动窗口的最大值 知识点:队列;滑动窗口;单调 题目描述 给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。 示例 输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3 输出: [3,3,5,5,6,7] 解释: 滑动窗口的位置 最大值
阅读全文 »
发表于 2021-08-11 22:53阅读:267评论:0推荐:0
摘要:3. 无重复字符的最长子串 知识点:字符串,滑动窗口 题目描述 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 输入: s = "bbbbb" 输出:
阅读全文 »
发表于 2021-08-11 19:16阅读:349评论:0推荐:0
摘要:53. 最大子序和(剑指 Offer 42) 知识点:数组;前缀和;哨兵;动态规划;贪心;分治; 题目描述 输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。 要求时间复杂度为O(n)。 示例 输入: nums = [-2,1,-3,4,-1,2,1,-5,4]
阅读全文 »
发表于 2021-08-05 14:08阅读:431评论:0推荐:1
摘要:【二分查找】35. 搜索插入位置 知识点:数组,二分查找; 题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 输入: nums = [1,3,5,6], tar
阅读全文 »
发表于 2021-08-05 10:08阅读:162评论:0推荐:0
摘要:74. 搜索二维矩阵 知识点:数组,二分查找; 题目描述 编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性: 每行中的整数从左到右按升序排列。 每行的第一个整数大于前一行的最后一个整数。 示例 link 输入:matrix = [[1,3,5,7],[10,11,
阅读全文 »
发表于 2021-08-05 09:59阅读:113评论:0推荐:0
摘要:153. 寻找旋转排序数组中的最小值 知识点:数组,二分查找; 题目描述 已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums = [0,1,2,4,5,6,7] 在变化后可能得到: 若旋转 4 次,则可以得到 [4,5,6,7,0,1,
阅读全文 »
发表于 2021-08-05 09:29阅读:81评论:0推荐:0
摘要:81. 搜索旋转排序数组 II 知识点:数组,二分查找; 题目描述 已知存在一个按非降序排列的整数数组 nums ,数组中的值不必互不相同。 在传递给函数之前,nums 在预先未知的某个下标 k(0 ⇐ k < nums.length)上进行了 旋转 ,使数组变为 [nums[k], nums[k+
阅读全文 »
发表于 2021-08-04 22:54阅读:303评论:0推荐:0
摘要:33. 搜索旋转排序数组 知识点:数组,二分查找; 题目描述 整数数组 nums 按升序排列,数组中的值 互不相同 。 在传递给函数之前,nums 在预先未知的某个下标 k(0 ⇐ k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], ..., num
阅读全文 »
发表于 2021-08-04 22:33阅读:274评论:0推荐:0
摘要:34. 在排序数组中查找元素的第一个和最后一个位置 知识点:数组,二分查找; 题目描述 给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target,返回 [-1, -1]。 进阶: 你可以设计并实现时间复杂
阅读全文 »
发表于 2021-08-04 21:32阅读:79评论:0推荐:0
摘要:328. 奇偶链表 知识点:链表;双指针 题目描述 给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。 请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节
阅读全文 »
发表于 2021-08-04 21:21阅读:102评论:0推荐:0
摘要:15. 三数之和 知识点:数组,双指针; 题目描述 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例 输入:nums = [-1,0,1
阅读全文 »
发表于 2021-08-04 21:20阅读:51评论:0推荐:0
摘要:18. 四数之和 知识点:数组,双指针; 题目描述 给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。 注意:答案中不可以包含
阅读全文 »