惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LangChain Blog
N
Netflix TechBlog - Medium
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
V
V2EX
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Blog — PlanetScale
Blog — PlanetScale
Microsoft Security Blog
Microsoft Security Blog
D
Docker
WordPress大学
WordPress大学
罗磊的独立博客
J
Java Code Geeks
博客园 - 【当耐特】
博客园 - 司徒正美
雷峰网
雷峰网
H
Help Net Security
酷 壳 – CoolShell
酷 壳 – CoolShell
Last Week in AI
Last Week in AI
宝玉的分享
宝玉的分享
Martin Fowler
Martin Fowler
T
Tailwind CSS Blog
Google DeepMind News
Google DeepMind News
M
MIT News - Artificial intelligence
Recent Announcements
Recent Announcements
B
Blog

博客园 - StudyNLP

python把中文汉字转拼音,存储到excel表格 算法结束篇 贪心-钓鱼问题 贪心-放置雷达 贪心-Stall Reservations 贪心-圣诞老人的礼物 广度优先搜索-八数码问题 广度优先搜索-鸣人和佐助 广度优先搜索-迷宫问题 广度优先搜索-抓住那头牛 深度优先搜索-生日蛋糕 深度优先搜索-Roads 深度优先搜索-踩方格 深度优先搜索-城堡问题 动态规划-分蛋糕V2 动态规划-分蛋糕V1 动态规划-滑雪 动态规划-0-1背包问题 动态规划-神奇的口袋V2
贪心-电影节
StudyNLP · 2020-08-02 · via 博客园 - StudyNLP
电影节:大学生电影节在北大举办! 这天,在北大各地放了多部电影,
给定每部电影的放映时间区间,区间重叠的电影不可能同时看(端点可以重合),
问李雷最多可以看多少部电影。
输入:多组数据。每组数据开头是n(n<=100) 100),表示共n场电影。
接下来n行,每行两个整数 均小于 1000 ),表示一场电影的放映区间
n=0则数据结束
输出:对每组数据输出最多能看几部电影
Sample Input
12
1 3
3 4
0 7
3 8
15 19
15 20
10 15
8 18
6 12
5 10
4 14
2 9

Sample Output
5

思路:贪心解法,将所有电影按结束时间从小到大排序,第一步选结束时间最早的
那部电影。 然后,每步都选和上一部选中的电影不冲突且结束时间最早的电影。
python代码实现:

def main():
    # 电影列表
    movie_list = []
    # 总共可以看多少部电影
    total = 1
    # n部电影
    n = int(input())
    for i in range(n):
        temp = list(map(int, input().split()))
        movie_list.append(temp)
    movie_list = sorted(movie_list, key=lambda x: x[1])
    # [[1, 3], [3, 4], [0, 7], [3, 8], [2, 9], [5, 10],
    #  [6, 12], [4, 14], [10, 15], [8, 18], [15, 19], [15, 20]]
    # 第一部影片的最早结束时间
    end_time = movie_list[0][1]
    for i in range(1, len(movie_list)):
        # 如果下一部影片的晚于或者等于上一部的结束时间,则可以看
        if end_time <= movie_list[i][0]:
            end_time = movie_list[i][1]
            total += 1

    print("最多能看%d部电影" % total)


if __name__ == '__main__':
    main()