1386. 安排电影院座位
Powered by:NEFU AB-IN
Link
文章目录
- 1386. 安排电影院座位
- 题意
- 思路
- 代码
1386. 安排电影院座位
题意
如上图所示,电影院的观影厅中有 n 行座位,行编号从 1 到 n ,且每一行内总共有 10 个座位,列编号从 1 到 10 。
给你数组 reservedSeats ,包含所有已经被预约了的座位。比如说,researvedSeats[i]=[3,8] ,它表示第 3 行第 8 个座位被预约了。
请你返回 最多能安排多少个 4 人家庭 。4 人家庭要占据 同一行内连续 的 4 个座位。隔着过道的座位(比方说 [3,3] 和 [3,4])不是连续的座位,但是如果你可以将 4 人家庭拆成过道两边各坐 2 人,这样子是允许的。思路
由于排的数量很多,所以枚举每排的话是不现实的
所以我们可以采用哈希表,来记录2~9有座位被占了的排(因为占1或10,和没占没什么区别,都是能做俩)
其次,可以用二进制串来记录这排的位置情况,1代表占了(可以采用bitset,也可以采用int)
最后取反一下,每行的状态,和left, mid, right进行&操作,如果&之后还是原值的话,那么说明可以放一个代码
/* * @Author: NEFU AB-IN * @Date: 2022-09-09 14:13:18 * @FilePath: \LeetCode\1386\1386.cpp * @LastEditTime: 2022-09-09 16:15:18 */ #include <bits/stdc++.h> using namespace std;// --------------------- #define N n + 100 #define SZ(X) ((int)(X).size()) #define DEBUG(X) cout << #X << ": " << X << '\n' typedef pair<int, int> PII;// #undef N // const int N = 1e5 + 10;static int IOS = []() {ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);return 0; }();class Solution {public:int maxNumberOfFamilies(int n, vector<vector<int>> &reservedSeats){bitset<11> left{0b111100000}, mid{0b1111000}, right{0b11110};// 2~5 4~7 6~9unordered_map<int, bitset<11>> mp;for (auto v : reservedSeats){int h = v[0], l = v[1];if (l >= 2 && l <= 9){mp[h].set(10 - l);}}int ans = (n - SZ(mp)) * 2;for (auto [h, b] : mp){b = ~b;// DEBUG(right);if (((b & left) == left) || ((b & right) == right) || ((b & mid) == mid))ans++;}return ans;} };// ---------------------// signed main() // {// Solution solution; // vector<vector<int>> a = {{1, 2}, {1, 3}, {1, 8}, {2, 6}, {3, 1}, {3, 10}}; // cout << solution.maxNumberOfFamilies(3, a); // return 0; // }
1386. 安排电影院座位相关推荐
- leetcode 1386. 安排电影院座位 位运算
题目链接:https://leetcode-cn.com/problems/cinema-seat-allocation/ 在一个电影院里,有n行座位,每行10个,被过道分隔为左边三个中间四个右边三个 ...
- leetcode 1386.安排电影院座位
一.题解 对于每一排座位,被安排家庭数目有四种情况: 1.安排两个家庭,即列2到9都没被预约. 2.安排一个家庭在左边,即2到5没被预约. 3.安排一个家庭在中间,即4到7没被预约. 4.安排一个家庭 ...
- 力扣:安排电影院座位
题目描述 如下图所示,电影院的观影厅中有 n 行座位,行编号从 1 到 n ,且每一行内总共有 10 个座位,列编号从 1 到 10 . 给你数组 reservedSeats ,包含所有已经被预约了的 ...
- 安排电影院座位--贪心算法
LeetCode 安排电影院座位 如上图所示,电影院的观影厅中有 n 行座位,行编号从 1 到 n ,且每一行内总共有 10 个座位,列编号从 1 到 10 . 给你数组 reservedSeats ...
- 秋招每日一题T32——安排电影院座位
题目描述 如上图所示,电影院的观影厅中有 n 行座位,行编号从 1 到 n ,且每一行内总共有 10 个座位,列编号从 1 到 10 . 给你数组 reservedSeats ,包含所有已经被预约了的 ...
- Leetcode 1386:安排电影院座位(超详细的解法!!!)
如上图所示,电影院的观影厅中有 n 行座位,行编号从 1 到 n ,且每一行内总共有 10 个座位,列编号从 1 到 10 . 给你数组 reservedSeats ,包含所有已经被预约了的座位.比如 ...
- LeetCode题解(1386):安排电影院座位(Python)
题目:原题链接(中等) 标签:贪心算法.数组 解法 时间复杂度 空间复杂度 执行用时 Ans 1 (Python) O(R)O(R)O(R) O(R)O(R)O(R) 144ms (41.56%) A ...
- leetcode1386. 安排电影院座位(贪心)
如上图所示,电影院的观影厅中有 n 行座位,行编号从 1 到 n ,且每一行内总共有 10 个座位,列编号从 1 到 10 . 给你数组 reservedSeats ,包含所有已经被预约了的座位.比如 ...
- (Python)LeetCode1386:安排电影院座位
题目 如上图所示,电影院的观影厅中有 n 行座位,行编号从 1 到 n ,且每一行内总共有 10 个座位,列编号从 1 到 10 . 给你数组 reservedSeats ,包含所有已经被预约了的座位 ...
最新文章
- screen史上最全教程
- 教育培训行业如何在抖音快速获客、变现?
- 听说GNN大有可为,从这篇开始学以致用
- L1-036 A乘以B
- 关于 SAP Spartacus 支持不同的环境配置部署到 SAP Commerce Cloud 上的讨论
- python utc 时间
- 计算机c语言知识点txt,计算机二级C语言(重要知识点)
- Tensorflow训练和预测中的BN层的坑(转)-训练和测试差异性巨大
- [CSS3]Clearfix
- Skype for Business 2015全新部署_07.前端安装02
- PADS layout 元件之间尺寸标注
- oracle中t,Oracle中如何用T
- 网络安全系列之四十九 IIS6.0权限设置
- uniapp h5在线预览word文档ppt等
- AODV协议代码详述
- 利用Echarts+阿里云地图选择器绘制可交互的行政区划地图
- 鼎捷T100标准接口调用
- 西门子G120变频器常用参数(自己总结的)
- 【凯子哥带你学Framework】Activity启动过程全解析
- 不忘初心牢记使命文化墙励志标语墙贴