Leetcode1353-最多可以参加的会议数目(Python3实现)
时间:2020-04-21
本文章向大家介绍Leetcode1353-最多可以参加的会议数目(Python3实现),主要包括Leetcode1353-最多可以参加的会议数目(Python3实现)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
题目描述:
给你一个数组 events,其中 events[i] = [startDayi, endDayi] ,表示会议 i 开始于startDayi ,结束于endDayi 。
你可以在满足 startDayi <= d <= endDayi 中的任意一天 d 参加会议 i 。
注意,一天只能参加一个会议。
请你返回你可以参加的最大会议数目。
输入:
输入:events = [[1,2],[2,3],[3,4]]
输出:3
解释:你可以参加所有的三个会议。
安排会议的一种方案如上图。
第 1 天参加第一个会议。
第 2 天参加第二个会议。
第 3 天参加第三个会议。
示例 1:
输入:events= [[1,2],[2,3],[3,4],[1,2]]
输出:4
思路:
设计贪心思路,把所有数据按endDay由小到大排列,如果endDay相同,按startDay由小到大排列,
然后建立天数动态数组,用于记录是否在某天已经参加了会议,
循环所有会议,并判定每个会议最早能排在第几天
代码:
class Solution: def maxEvents(self, events: List[List[int]]) -> int: events=sorted(events,key=lambda x:(x[1],x[0]))#按最晚时间,最早时间两种元素进行排列 arr2=[False] count=0 for i in range(len(events)): for j in range(events[i][0],events[i][1]+1): while len(arr2)<=j: arr2.append(False)#如果天数数组不够大,动态增加天数数组大小 if arr2[j]==False:#判定在j天是否已经有会议安排 arr2[j]=True count+=1 break return count
判定结果:
原文地址:https://www.cnblogs.com/lhdb/p/12743740.html
- 【Go 语言社区】Golang 可变参数的使用
- 【Go 语言社区】Golang源码解读之map
- 一则报警信息所折射出来的诸多问题(r9笔记第14天)
- Java面试系列17-编程题-读取服务器字符、实现序列化、计数器、1000阶乘、n出列问题等
- tensorflow(一)windows 10 64位安装tensorflow1.4与基本概念解读tf.global_variables_initializer
- 容灾切换中的数据库宕机问题简单分析(一) (r9笔记第12天)
- Java面试系列14
- linux下搭建django记录笔记,未完稿,节后继续
- Java案例-打印图形与π
- 关于两个简单问题的分析(r9笔记第10天)
- 初步解读Golang中的接口相关编写方法
- Go语言获取Windows下文件是否隐藏
- Java案例-求a+aa+aaa+.......+aaaaaaaaa=?
- 【Go 语言社区】算法课程 第一季 第6节 建立三角形
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 什么是计算机网络?为什么需要网络通信?如何进行网络编程?
- Python中好用又高效的Collections 模块
- 正确创建Python二维数组
- 深入理解Python内存管理与垃圾回收,再也不怕问了(一)
- 走进面向“对象”编程的理想国(一)——深入理解Python中的一切皆对象
- 深入理解Python内存管理与垃圾回收,再也不怕问了(二)
- 如何利用Python实现二分查找(迭代和递归)
- 详解排序算法(Python实现)
- Python垃圾回收机制
- iOS 开发:『Crash 防护系统』(二)KVO 防护
- 学Java到底学什么
- Python 的魔法方法及用途
- 四件简单的事情,帮助改善部署过程
- 为什么 Python 程序中很少看到驼峰式的命名方式?
- GATK的FilterMutectCalls如何才能成功呢