博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1133 不重叠的线段(贪心)
阅读量:6402 次
发布时间:2019-06-23

本文共 1554 字,大约阅读时间需要 5 分钟。

X轴上有N条线段,每条线段有1个起点S和终点E。最多能够选出多少条互不重叠的线段。

(注:起点或终点重叠,不算重叠)。例如:[1 5][2 3][3 6],可以选[2 3][3 6],这2条线段互不重叠。

思路:

以结束时间排序,最先结束就可以更早的开始,这样才会更多的进行任务

代码:

package _51_node.greedy;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.Scanner;public class ex_1133 {    /**     * 1133 不重叠的线段     * 1 秒  131,072 KB 10 分 2 级题     * X轴上有N条线段,每条线段有1个起点S和终点E。最多能够选出多少条互不重叠的线段。     * (注:起点或终点重叠,不算重叠)。例如:[1 5][2 3][3 6],可以选[2 3][3 6],这2条线段互不重叠。     *     *     * @param args     */    public static void main(String[] args) {        Scanner cin = new Scanner(System.in);        int n = cin.nextInt();        ArrayList
arrayList = new ArrayList<>(); for (int i = 1; i <= n; i++) { int a = cin.nextInt(); int b = cin.nextInt(); arrayList.add(new Point(a, b)); } cin.close(); Collections.sort(arrayList, new Comparator
() { @Override public int compare(Point o1, Point o2) { return o1.end - o2.end; } }); long ans = 0, t = (long)-1e9; for (int i = 0; i < arrayList.size(); i++) { if(arrayList.get(i).start >= t) { t = arrayList.get(i).end; ans++; } } System.out.println(ans); } static class Point { int start; int end; public Point(int start, int end) { this.start = start; this.end = end; } }}

转载于:https://www.cnblogs.com/somliy/p/10019810.html

你可能感兴趣的文章
angular项目整合到.net mvc中
查看>>
Project network redundant , Vmware virtualization, Dell VRTX P2V - Part 3 (VRTX Installation)
查看>>
WSFC RODC部署模型
查看>>
(五)Docker镜像管理3之上传镜像
查看>>
elasticsearch 多次聚合
查看>>
SUSE11开启Xmanager
查看>>
Scala 语言学习之泛型(7)
查看>>
centos 7 网卡命名
查看>>
python--字典类型
查看>>
Powershell 批量重命名
查看>>
zabbix proxy搭建及其排错
查看>>
如何利用报表工具FineReport实现报表列的动态展示
查看>>
IC卡制作常识概述
查看>>
centos EMQTTD 集群安装配置与测试验证
查看>>
MYSQL常用的架构和优化及常用的配置详解及MySQL数据库主从同步延迟原理
查看>>
Renewing a self-signed certificate in SBS 2003
查看>>
分布式文件系统之配置DFS复制
查看>>
【Maclean技术分享】开Oracle调优鹰眼,深入理解AWR性能报告 第二讲
查看>>
linux的启动过程详解
查看>>
MySQL多线程备份工具:mydumper
查看>>