452は、矢印の最小数を有するバルーンを爆発しました

452は、矢印の最小数を有するバルーンを爆発しました

タイトル説明

2次元空間での多くの球形の風船があります。各バルーンのために、入力は、水平方向に設けられ、バルーン最初と最後の直径を調整します。それは水平なので、y座標は、限り、我々はx座標の始まりと終わりが十分にある知っているように、それほど重要ではありません。座標を起動し、常に座標の端部よりも少ないです。最大104個のバルーン面の存在。

弓矢を完全に直交するX軸に沿った異なる点から放射されてもよいです。バルーンXSTARTの開始および終了座標の直径と、座標xにある矢印を発するたxend、及びXSTART≤X≤たxendを満たし、バルーンが爆発します。弓の数は限定されることなく出射することができます。弓と矢を撮影したら、無期限に転送することができます。私たちは皆、すべての風船が爆発したことが弓と矢の最低限必要な数を見つけたいです。

例:

输入:
[[10,16], [2,8], [1,6], [7,12]]

输出:
2

解释:
对于该样例,我们可以在x = 6(射爆[2,8],[1,6]两个气球)和 x = 11(射爆另外两个气球)。

コードの投稿

class Solution {
    public int findMinArrowShots(int[][] points) {
        if (points.length == 0) return 0;
        Arrays.sort(points, new Comparator<int[]>() {
            @Override
            public int compare(int[] o1, int[] o2) {
                return o1[1] - o2[1];
            }
        });
        int cnt = 1, end = points[0][1];
        for (int i = 1; i < points.length; i ++){
            if (points[i][0] > end){
                cnt ++;
                end = points[i][1];
            }
        }
        return cnt;
    }
}

おすすめ

転載: www.cnblogs.com/Tu9oh0st/p/10994186.html