跳至主要內容
56, 合并区间

一、题目描述

以数组intervals表示若干个区间的集合,其中单个区间为intervals[i] = [starti, endi]。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间

示例 1
输入: intervals = [[1, 3], [2, 6], [8, 10], [15, 18]]
输出: [[1, 6], [8, 10], [15, 18]]
解释: 区间[1, 3][2, 6]重叠, 将它们合并为[1, 6].


Mike大约 2 分钟greedymediumarraysorting
452, 用最少数量的箭引爆气球

一、题目描述

有一些球形气球贴在一堵用XY平面表示的墙面上。墙面上的气球记录在整数数组points,其中points[i] = [xstart, xend]表示水平直径在xstartxend之间的气球。你不知道气球的确切y坐标。

一支弓箭可以沿着x轴从不同点完全垂直地射出。在坐标x处射出一支箭,若有一个气球的直径的开始和结束坐标为xstartxend,且满足xstart ≤ x ≤ xend,则该气球会被引爆。可以射出的弓箭的数量没有限制。弓箭一旦被射出之后,可以无限地前进。


Mike大约 3 分钟greedymediumarraygreedysorting
406, 根据身高重建队列

一、题目描述

假设有打乱顺序的一群人站成一个队列,数组people表示队列中一些人的属性(不一定按顺序)。每个people[i] = [hi, ki]表示第i个人的身高为hi,前面正好ki个身高大于或等于hi的人。

请你重新构造并返回输入数组people所表示的队列。返回的队列应该格式化为数组queue,其中queue[j] = [hj, kj]是队列中第j个人的属性(queue[0]是排在队列前面的人)。


Mike大约 3 分钟greedymediumbinary indexed treesegment treearraysorting
1005, K次取反后最大化的数组和

一、题目描述

给你一个整数数组nums和一个整数k,按以下方法修改该数组:

  • 选择某个下标i并将nums[i]替换为-nums[i]

重复这个过程恰好k次。可以多次选择同一个下标i

以这种方式修改数组后,返回数组可能的最大和

示例 1
输入: nums = [4, 2, 3], k = 1
输出: 5
解释: 选择下标1nums变为[4, -2, 3]


Mike大约 3 分钟greedyeasygreedyarraysorting
455, 分发饼干

一、题目描述

假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。

对每个孩子i,都有一个胃口值g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干j,都有一个尺寸s[j]。如果s[j] >= g[i],我们可以将这个饼干j分配给孩子i,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。

示例 1
输入: g = [1, 2, 3], s = [1, 1]
输出: 1
解释: 你有三个孩子和两块小饼干,3个孩子的胃口值分别是:1,2,3。虽然你有两块小饼干,由于他们的尺寸都是1,你只能让胃口值是1的孩子满足。所以你应该输出1。


Mike大约 2 分钟greedyeasygreedyarraytwo pointerssorting
347, 前K个高频元素

一、题目描述

给你一个整数数组nums和一个整数k,请你返回其中出现频率前k高的元素。你可以按任意顺序返回答案。

示例 1
输入: nums = [1, 1, 1, 2, 2, 3], k = 2
输出: [1, 2]

示例 2
输入: nums = [1], k = 1
输出: [1]

提示


Mike大约 5 分钟stack/queuemediumhash tabledivide and conquersortingheap(priority queue)bucket sortcountingquick select
18, 四数之和

一、题目描述

给你一个由n个整数组成的数组nums,和一个目标值target。请你找出并返回满足下述全部条件且不重复的四元组[nums[a], nums[b], nums[c], nums[d]](若两个四元组元素一一对应,则认为两个四元组重复):

  • 0 <= a, b, c, d < n
  • abcd互不相同
  • nums[a] + nums[b] + nums[c] + nums[d] == target

Mike大约 3 分钟hashtablemediumarraytwo pointerssorting
16, 最接近的三数之和

一、题目描述

给你一个长度为n的整数数组nums和一个目标值target。请你从nums中选出三个整数,使它们的和与target最接近。

返回这三个数的和。

假定每组输入恰好只存在一个解。

示例 1
输入: nums = [-1, 2, 1, -4], target = 1
输出: 2
解释: 与target最接近的和是2 (-1 + 2 + 1 = 2)。


Mike大约 2 分钟hashtablemediumarraytwo pointerssorting
15, 三数之和

一、题目描述

给你一个整数数组nums,判断是否存在三元组[nums[i], nums[j], nums[k]]满足i != j、i != k 且 j != k,同时还满足nums[i] + nums[j] + nums[k] == 0。请你返回所有和为0且不重复的三元组。

注意:答案中不可以包含重复的三元组。

示例 1
输入: nums = [-1, 0, 1, 2, -1, -4]
输出: [[-1, -1, 2], [-1, 0, 1]]
解释:
nums[0] + nums[1] + nums[2] = (-1) + 0 + 1 = 0。
nums[1] + nums[2] + nums[4] = 0 + 1 + (-1) = 0。
nums[0] + nums[3] + nums[4] = (-1) + 2 + (-1) = 0。
不同的三元组是[-1, 0, 1] 和 [-1, -1, 2]。
注意,输出的顺序和三元组的顺序并不重要。


Mike大约 2 分钟hashtablemediumarraytwo pointerssorting
350, 两个数组的交集II

一、题目描述

给你两个整数数组nums1nums2,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。

示例 1
输入: nums1 = [1, 2, 2, 1], nums2 = [2, 2]
输出: [2, 2]

示例 2
输入: nums1 = [4, 9, 5], nums2 = [9, 4, 9, 8, 4]
输出: [4, 9]
解释: [9, 4]也是可以接受的。


Mike大约 2 分钟hashtableeasyarrayhash tablebinary searchsortingtwo pointers
2