广州建网站哪里比较好,网站建设使用哪种语言好,天津建设厅 注册中心网站首页,网站建设必须经历的过程区间交集#xff1a;用最少数量的箭引爆气球
用最少数量的箭引爆气球
leetcode.cn/problems/minimum-number-of-arrows-to-burst-balloons/… 有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组 points #xff0c;其中points[i] [xsub用最少数量的箭引爆气球
用最少数量的箭引爆气球
leetcode.cn/problems/minimum-number-of-arrows-to-burst-balloons/… 有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组 points 其中points[i] [xsubstart/sub, xsubend/sub] 表示水平直径在 xsubstart/sub 和 xsubend/sub之间的气球。你不知道气球的确切 y 坐标。 一支弓箭可以沿着 x 轴从不同点 完全垂直 地射出。在坐标 x 处射出一支箭若有一个气球的直径的开始和结束坐标为 xstartxend 且满足 xsubstart/sub ≤ x ≤ xend则该气球会被 引爆 。可以射出的弓箭的数量 没有限制 。 弓箭一旦被射出之后可以无限地前进。 给你一个数组 points 返回引爆所有气球所必须射出的 最小 弓箭数 。 可以参考 区间选点
import java.util.Arrays;class Solution {public int findMinArrowShots(int[][] points) {int n points.length;Arrays.sort(points, (a, b) - {if (a[0] b[0]) {return a[1] b[1] ? 1 : -1;}return a[0] b[0] ? 1 : -1;});int l points[0][0], r points[0][1];int res 1;for (int i 1; i n; i) {if (points[i][0] r) {res;l points[i][0];r points[i][1];} else {// unionl points[i][0];r Math.min(points[i][1], r);}}return res;}
}