题解 | #视野争夺#

视野争夺

http://www.nowcoder.com/questionTerminal/61e1e66e39f348cdb6495de91ac36a41

import java.util.*;

public class Main{
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int L = scanner.nextInt();
        List<int[]> list = new ArrayList<>();
        for (int i = 0; i < n; i++) {
            int[] tmp = new int[2];
            tmp[0] = scanner.nextInt();
            tmp[1] = scanner.nextInt();
            list.add(tmp);
        }
        list.sort(((o1, o2) -> {
            return o1[0] == o2[0] ? o1[1] - o2[1] : o1[0] - o2[0];
        }));
        int find = 0,res = 0;
        boolean f = false;
        for (int i = 0; i < n;) {
            int maxY = find;
            if(list.get(i)[0] <= find){
                System.out.println(-1);
                return;
            }
            while (i < n && list.get(i)[0] <= find){
                int x = list.get(i)[0],y = list.get(i)[1];
                maxY = Math.max(maxY,y);
                if(maxY >= L){
                    f = true;
                    break;
                }
                i++;
            }
            find = maxY;
            res++;
            if(f)
                break;
        }
        System.out.println(find >= L ? res : -1);
    }
}

全部评论

相关推荐

牛客845590724号:单学校就够拷打了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务