如上图所示,电影院的观影厅中有 n 行座位,行编号从 1 到 n ,且每一行内总共有 10 个座位,列编号从 1 到 10 。

给你数组 reservedSeats ,包含所有已经被预约了的座位。比如说,researvedSeats[i]=[3,8] ,它表示第 3 行第 8 个座位被预约了。

请你返回 最多能安排多少个 4 人家庭 。4 人家庭要占据 同一行内连续 的 4 个座位。隔着过道的座位(比方说 [3,3] 和 [3,4])不是连续的座位,但是如果你可以将 4 人家庭拆成过道两边各坐 2 人,这样子是允许的。

示例 1:

输入:n = 3, reservedSeats = [[1,2],[1,3],[1,8],[2,6],[3,1],[3,10]]
输出:4
解释:上图所示是最优的安排方案,总共可以安排 4 个家庭。蓝色的叉表示被预约的座位,橙色的连续座位表示一个 4 人家庭。
示例 2:

输入:n = 2, reservedSeats = [[2,1],[1,8],[2,6]]
输出:2
示例 3:

输入:n = 4, reservedSeats = [[4,3],[1,4],[4,6],[1,7]]
输出:4

提示:

1 <= n <= 10^9
1 <= reservedSeats.length <= min(10*n, 10^4)
reservedSeats[i].length == 2
1 <= reservedSeats[i][0] <= n
1 <= reservedSeats[i][1] <= 10
所有 reservedSeats[i] 都是互不相同的。
通过次数1,517提交次数6,325

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/cinema-seat-allocation
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路:

首先一排座位最多能坐两个家庭,

其次能坐下一个家庭的位置只有 2345, 4567, 6789。

如果 2345, 6789 都为空,则可以坐下两个家庭,

如果 2345, 6789 有一个为空,则可以坐下一个家庭。

所以只要判断每一行 23 45 67 89 的空闲情况,就可以知道这一行能坐几个家庭。

另外需要注意的是此题数据规模很大,如果对于每一行都进行上述判断会超时,

所以我们不妨只判断坐了人的行,没坐人的行直接坐下两个家庭即可。

时间复杂度:O(K), K是reservedSeats的长度

空间复杂度:O(K)

class Solution(object):def maxNumberOfFamilies(self, n, reservedSeats):""":type n: int:type reservedSeats: List[List[int]]:rtype: int"""from collections import defaultdictdic = defaultdict(set)res = 0usedrow = set()for row, seat in reservedSeats:dic[row].add(seat)usedrow.add(row)for row in usedrow:twothree = 2 not in dic[row] and 3 not in dic[row]fourfive = 4 not in dic[row] and 5 not in dic[row]sixseven = 6 not in dic[row] and 7 not in dic[row]eightnine = 8 not in dic[row] and 9 not in dic[row]if twothree and fourfive and sixseven and eightnine:res += 2elif twothree and fourfive:res += 1elif fourfive and sixseven:res += 1elif sixseven and eightnine:res += 1return res + (n - len(usedrow)) * 2

LeetCode-Python-1386. 安排电影院座位(数组)相关推荐

  1. 1386. 安排电影院座位

    Powered by:NEFU AB-IN Link 文章目录 1386. 安排电影院座位 题意 思路 代码 1386. 安排电影院座位 题意 如上图所示,电影院的观影厅中有 n 行座位,行编号从 1 ...

  2. leetcode 1386. 安排电影院座位 位运算

    题目链接:https://leetcode-cn.com/problems/cinema-seat-allocation/ 在一个电影院里,有n行座位,每行10个,被过道分隔为左边三个中间四个右边三个 ...

  3. leetcode 1386.安排电影院座位

    一.题解 对于每一排座位,被安排家庭数目有四种情况: 1.安排两个家庭,即列2到9都没被预约. 2.安排一个家庭在左边,即2到5没被预约. 3.安排一个家庭在中间,即4到7没被预约. 4.安排一个家庭 ...

  4. Leetcode 5349:安排电影院座位

    题目描述 如上图所示,电影院的观影厅中有 n 行座位,行编号从 1 到 n ,且每一行内总共有 10 个座位,列编号从 1 到 10 . 给你数组 reservedSeats ,包含所有已经被预约了的 ...

  5. 力扣:安排电影院座位

    题目描述 如下图所示,电影院的观影厅中有 n 行座位,行编号从 1 到 n ,且每一行内总共有 10 个座位,列编号从 1 到 10 . 给你数组 reservedSeats ,包含所有已经被预约了的 ...

  6. 安排电影院座位--贪心算法

    LeetCode 安排电影院座位 如上图所示,电影院的观影厅中有 n 行座位,行编号从 1 到 n ,且每一行内总共有 10 个座位,列编号从 1 到 10 . 给你数组 reservedSeats ...

  7. 秋招每日一题T32——安排电影院座位

    题目描述 如上图所示,电影院的观影厅中有 n 行座位,行编号从 1 到 n ,且每一行内总共有 10 个座位,列编号从 1 到 10 . 给你数组 reservedSeats ,包含所有已经被预约了的 ...

  8. LeetCode题解(1386):安排电影院座位(Python)

    题目:原题链接(中等) 标签:贪心算法.数组 解法 时间复杂度 空间复杂度 执行用时 Ans 1 (Python) O(R)O(R)O(R) O(R)O(R)O(R) 144ms (41.56%) A ...

  9. Leetcode 1386:安排电影院座位(超详细的解法!!!)

    如上图所示,电影院的观影厅中有 n 行座位,行编号从 1 到 n ,且每一行内总共有 10 个座位,列编号从 1 到 10 . 给你数组 reservedSeats ,包含所有已经被预约了的座位.比如 ...

  10. (Python)LeetCode1386:安排电影院座位

    题目 如上图所示,电影院的观影厅中有 n 行座位,行编号从 1 到 n ,且每一行内总共有 10 个座位,列编号从 1 到 10 . 给你数组 reservedSeats ,包含所有已经被预约了的座位 ...

最新文章

  1. 三年、四大顶会,深度推荐系统18篇论文只有7个可以复现
  2. 5 HttpHandler
  3. c++中的STL的常用算法---3(排序算法,拷贝和替换算法,算术生成算法,集合算法)
  4. java文件传输接口
  5. SpringMv的IOC控制反转以及DI依赖注入(SpringMvc⑨)
  6. 综合案例—Spark实时交易数据统计
  7. 进行的vistor实验
  8. 三层vxlan原理_网工知识角|没人会告诉你的网络SDN软定义技术中VXLAN的4个特点
  9. springboot新手项目从零开始搭建,涉及excel数据导出和邮箱发送(上)
  10. Ansys·Icem·T型喷管的网格生成
  11. python关键字中文意思_python解析URL中文关键字
  12. opencv3.0中contrib模块的添加
  13. 去中心化云存储技术 | CESS 的多层网络架构详解
  14. 《2021勒索病毒大盘点》
  15. 磁力泵轴承毁坏、泵轴裂开、扬程不够如何解决
  16. rsyslog与mysql可以是同一台_关于rsyslog和loganalyzer使用
  17. XP sp2安装office2010全过程
  18. 右值引用延长其生存期的问题
  19. Content type ‘multipart/form-data;boundary=解决方案
  20. 7.在SAP Web上实现Punchout目录采购(第二部分)

热门文章

  1. 使用一个运放滤三次谐波 二阶有源带通滤波器的电路设计及波形效果
  2. 如何解决语音社交的安全隐忧
  3. 三国志战略版:Daniel_S6魏延虚弱流开荒实录
  4. android程序设计学习,android编程入门很简单 android编程入门自学
  5. 解决mac按键精灵鼠标位置不准(连点器)
  6. 单片机延时函数移植问题
  7. reviewboard mysql_【ReviewBoard】安装与配置
  8. 计算机里的程序文件删除不了怎么办,文件删除不了怎么办 顽固文件删除方法大全...
  9. ubuntu 安装 TM2009 QQ2013
  10. 如何成为城建档案管理员(资料员)