摘要:
155. 最小栈 知识点:栈;单调 题目描述 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) —— 将元素 x 推入栈中。 pop() —— 删除栈顶的元素。 top() —— 获取栈顶元素。 getMin() —— 检索栈中的最小元素。 示例 阅读全文
摘要:
23. 合并K个升序链表 知识点:链表;递归;分治;堆;单调; 题目描述 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 示例 输入:lists = [[1,4,5],[1,3,4],[2,6]] 输出:[1,1,2,3,4,4,5,6] 解释: 阅读全文
摘要:
剑指 Offer 40. 最小的k个数 知识点:Top-K;数组;排序;分治;堆;单调; 题目描述 输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。 示例 输入:arr = [3,2,1], k = 2 输出:[ 阅读全文
摘要:
215. 数组中的第K个最大元素 知识点:数组;排序;分治;堆;单调; 题目描述 给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。 请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 示例 输入: [3,2,1,5,6,4] 和 k = 2 输出 阅读全文
摘要:
229. 求众数 II 知识点:数组;消消乐;摩尔投票法; 题目描述 给定一个大小为 n 的整数数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素。 进阶:尝试设计时间复杂度为 O(n)、空间复杂度为 O(1)的算法解决此问题。 示例 输入:[3,2,3] 输出:[3] 输入:nums = [1] 阅读全文
摘要:
169. 多数元素 知识点:数组;排序;消消乐;分治; 题目描述 给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 输入:[3,2,3] 输出:3 输入:[2,2,1,1,1, 阅读全文
摘要:
【贪心】435. 无重叠区间 知识点:贪心; 题目描述 给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。 注意: 可以认为区间的终点总是大于它的起点。 区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。 示例 输入: [ [1,2], [2,3], [3,4] 阅读全文
摘要:
738. 单调递增的数字 知识点:字符串;贪心 题目描述 给定一个非负整数 N,找出小于或等于 N 的最大的整数,同时这个整数需要满足其各个位数上的数字是单调递增。 (当且仅当每个相邻位数上的数字 x 和 y 满足 x ⇐ y 时,我们称这个整数是单调递增的。) 示例 输入: N = 10 输出: 阅读全文
摘要:
56. 合并区间 知识点:贪心 题目描述 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。 示例 输入:intervals = [[1 阅读全文
摘要:
406. 根据身高重建队列 知识点:贪心 题目描述 假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个 people[i] = [hi, ki] 表示第 i 个人的身高为 hi ,前面 正好 有 ki 个身高大于或等于 hi 的人。 请你重新构造并返 阅读全文