4151.电影--贪心

https:// blog.csdn.net/CuriousLiu/article/details/81175831 附上其他的人解释 虽然看完还是有点不懂 有点烧脑 出去吃个饭就到怎么解了
第一步 先按结束时间早的进行排序 结束早的在前面
第二步 重头开始选 选结束时间早的 这样接下面 结合下一部电影的开始时间结束时间 继续选 结束时间早的 重头开始选 肯定选结束时间早的 因为这样才是最有解

import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		while (sc.hasNext()) {
			int num = sc.nextInt();
			if (num == 0) {
				return;
			}
			int[][] arr = new int[num][2];
			for (int i = 0; i < num; i++) {
				arr[i][0] = sc.nextInt();// 开始
				arr[i][1] = sc.nextInt();// 结束时间
			}
			int temp0 = 0;
			int temp1 = 0;
			for (int i = 0; i < num; i++) {//进行排序 
				for (int x = 0; x < num; x++) {
					if (arr[i][1] < arr[x][1]) {
						temp0 = arr[i][0];
						temp1 = arr[i][1];
						arr[i][0] = arr[x][0];
						arr[i][1] = arr[x][1];
						arr[x][0] = temp0;
						arr[x][1] = temp1;
					}
				}
			} 
			int count = 0;
			int flagx = 0;
			for(int i = 0 ;i < num ;i++) {//从头到尾遍历一遍
				if(flagx <= arr[i][0]) {
					flagx = arr[i][1];
					count++;
				}
			}
			System.out.println(count);
		}
	}
}
原文地址:https://www.cnblogs.com/cznczai/p/11148043.html