Interval 区间
4/3/26Less than 1 minute
Interval 区间
不相交区间
区间选点
区间覆盖
区间分组
给定一些区间,把这些区间分成最少的组,使得每组内的区间互不相交。
开始早的在前;开始时间一样,晚结束的在前;
a ASC, b ASC
选择:
任务调度/会议室
不相交区间
b ASC
选择:一定选择第一个区间
区间选点
b ASC, a DESC
选择:一定选择第一个区间取最后一个点
用最少数量的箭引爆气球
区间覆盖
a ASC
跳跃游戏
45. Jump Game II
public int jump(int[] nums) {
int n = nums.length;
int ans = 0;
int prevIdx = 0, lastIdx = 0;
for (int i = 0; i < n; i++) {
if (i > lastIdx) {
return -1;
}
lastIdx = Math.max(lastIdx, i + nums[i]);
if (i != n - 1 && i == prevIdx) {
ans++;
prevIdx = lastIdx;
}
}
return ans;
}55. Jump Game
public boolean canJump(int[] nums) {
int n = nums.length;
int lastIdx = 0;
for (int i = 0; i < n; i++) {
if (i > lastIdx) {
return false;
}
lastIdx = Math.max(lastIdx, i + nums[i]);
}
return true;
}