import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author xnl
* @Description:
* @date: 2022/7/20 22:12
*/
public class Solution {
public static void main(String[] args) {
Solution solution = new Solution();
}
public int maxNumberOfFamilies(int n, int[][] reservedSeats) {
int left = 0b11110000;
int middle = 0b11000011;
int right = 0b00001111;
Map<Integer, Integer> map = new HashMap<>(16);
for (int[] reservedSeat : reservedSeats) {
// 这样的数据才有意思,去掉头尾的节点数据
if (reservedSeat[1] >= 2 && reservedSeat[1] <= 9){
int origin = map.containsKey(reservedSeat[0]) ? map.get(reservedSeat[0]) : 0;
int value = origin | (1 << (reservedSeat[1] - 2));
map.put(reservedSeat[0], value);
}
}
// 一列没有被人预约的
int ans = (n - map.size()) * 2;
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
int row = entry.getKey(), bitmask = entry.getValue();
if ((bitmask | left) == left || (bitmask | middle) == middle || (bitmask | right) == right){
++ans;
}
}
return ans;
}
public int maxNumberOfFamilies2(int n, int[][] reservedSeats) {
Map<Integer, List<Integer>> map = new HashMap<>();
for (int[] seat : reservedSeats) {
List<Integer> value = null;
if (map.get(seat[0]) != null){
value = map.get(seat[0]);
} else {
value = new ArrayList<>();
}
value.add(seat[1]);
map.put(seat[0], value);
}
int ans = (n - map.size()) * 2;
for (Map.Entry<Integer, List<Integer>> entry : map.entrySet()) {
boolean left = true, middle = true, right = true;
for (Integer integer : entry.getValue()) {
if (integer >= 2 && integer <= 5){
left = false;
}
if (integer >= 4 && integer <= 7){
middle = false;
}
if (integer >= 6 && integer <= 9){
right = false;
}
}
if (left && right){
ans += 2;
} else if (left || right || middle){
ans += 1;
}
}
return ans;
}
}
相关推荐
ThingsBoard - 设备接入
设备接入笔记
leetcode 1386.安排电影院座位
leetcode 1386
PyCharm与MicroPython联手:打造高效ESP32开发环境
本文详细介绍了如何使用PyCharm与MicroPython打造高效的ESP32开发环境。通过配置PyCharm插件、刷写MicroPython固件以及实战示例,帮助开发者快速上手嵌入式Python开发,显著提升物联网项目的开发效率。
力扣:安排电影院座位
题目描述 如下图所示,电影院的观影厅中有 n 行座位,行编号从 1 到 n ,且每一行内总共有 10 个座位,列编号从 1 到 10 。 给你数组 reservedSeats ,包含所有已经被预约了的座位。比如说,researvedSeats[i]=[3,8] ,它表示第 3 行第 8 个座位被预约了。 请你返回 最多能安排多少个 4 人家庭 。4 人家庭要占据 同一行内连续 的 4 个座位。隔着过道的座位(比方说 [3,3] 和 [3,4])不是连续的座位,但是如果你可以将 4 人家庭拆成过道两边各坐
Win10下Altera USB-Blaster驱动安装详解:禁用数字签名与排查指南
在嵌入式开发和FPGA调试过程中,驱动安装是工程师绕不开的环节,尤其是当操作系统对驱动签名有严格限制时,硬件往往无法被正常识别。数字签名是系统验证驱动程序来源和完整性的重要机制,Win10出于安全考虑,默认拒绝加载未经签名的驱动,这正是Altera USB-Blaster下载器在设备管理器中显示未知设备或黄色感叹号的根本原因。通过理解设备管理器的排查逻辑,掌握临时禁用驱动强制签名或开启测试模式的方法,配合正确的驱动文件路径选择与手动安装操作,即可解决Quartus无法检测到下载器的问题。这一流程同样适用于许
配电网故障重构/孤岛划分/故障恢复
程序主要复现《基于GA_BFGS算法的配电网故障恢复性重构研究_郑海广》,采用matlab编程软件实现,依据网络结构和DG供电方式对配电网进行孤岛划分,将含有 DG 的配电网拓扑结构看成一个树,搭建成连通图模型,使得将孤岛的划分变成了求取最小生成树,以网损和开关开断次数作为目标,采用 IEEE33 节点配电网为算例,通过遗传算法寻优计算,从而得到最佳的重构方案。
力扣刷题指南——贪心算法
一、什么是贪心算法
【Telephony】Telephony总纲!Phone进程流程(AOSP)
整个Framework层的Telephony框架运行在一个叫做Phone(com.android.phone)的进程中。 Phone进程启动的过程中,会初始化非常多的分支功能,SIM卡流程初始化就是其中之一,所以我觉得有必要写一下Phone进程的框架
1386. 安排电影院座位
Leetcode 1386. 安排电影院座位
ZYNQ microblaze boot.bin固化步骤
一,ZYNQ移植软核的原理FPGA规模巨大而且功能复杂,因此设计的每一个部分都从头开始是不切实际的。一种解决的办法是:对于较为通用的部分可以重用现有的功能模块,而把主要的时间和资源用在设计中的那些全新的、独特的部分。这就像是你在开发应用程序的时候就不用直接去写驱动物理硬件的代码,而是直接调用Windows提供的API就行了。
【openGauss实战1】openGauss基于CentOS8的部署
基于openGauss数据库在CentOS8上的安装实践。
1386 安排电影院座位(字典、位运算)
1. 问题描述: 如上图所示,电影院的观影厅中有 n行座位,行编号从 1到 n,且每一行内总共有 10 个座位,列编号从 1 到 10 。 给你数组reservedSeats,包含所有已经被预约了的座位。比如说,researvedSeats[i]=[3,8],它表示第3行第8个座位被预约了。 请你返回最多能安排多少个 4 人家庭。4 人家庭要占据同一行内连续的4个座位。隔着过道的座位(比方说 [3,3] 和 [3,4])不是连续的座位,但是如果你可以将 4 人家庭拆成过道两边各...
基于Simulink的PR(比例谐振)控制器在单相整流中的应用
本文详细介绍了基于Simulink的单相整流系统中PR(比例谐振)控制器的设计与实现方法。首先阐述了PR控制器相较于传统PI控制器的优势,能够有效消除交流信号跟踪中的稳态误差。接着系统讲解了PR控制器的传递函数原理、实用型设计(带带宽)及参数整定方法。通过Simulink建模步骤,包括主功率电路搭建、电压外环PI设计、电流指令生成、PR控制器实现(推荐MATLAB Function方法)和SPWM调制等关键环节。仿真对比显示PR控制在电流跟踪精度(THD仅1.9%)、功率因数(0.998)和动态响应(突变恢
(Python)LeetCode1386:安排电影院座位
题目 如上图所示,电影院的观影厅中有 n 行座位,行编号从 1 到 n ,且每一行内总共有 10 个座位,列编号从 1 到 10 。 给你数组 reservedSeats ,包含所有已经被预约了的座位。比如说,researvedSeats[i]=[3,8] ,它表示第 3 行第 8 个座位被预约了。 请你返回 最多能安排多少个 4 人家庭 。4 人家庭要占据 同一行内连续 的 4 个座位。隔着过...
计算机控制技术及应用
《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。
jdk-8u144-linux-x64.tar.gz.
该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包
LeetCode 1386.安排电影院座位:哈希表+位运算
LeetCode 1386.安排电影院座位:哈希表+位运算 如上图所示,电影院的观影厅中有 n 行座位,行编号从 1 到 n ,且每一行内总共有 10 个座位,列编号从 1 到 10 。 给定一个二维数组 reservedSeats ,其中 reservedSeats[i] = [rowi, seati] 表示第 rowi 行的座位 seati 已经被预定。 四人小组必须被安排在同一排的四个座位上。该小组可以坐在以下座位块之一:
STM32F407中文手册
STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。
LeetCode题解(1386):安排电影院座位(Python)
题目:原题链接(中等) 标签:贪心算法、数组 解法 时间复杂度 空间复杂度 执行用时 Ans 1 (Python) O(R)O(R)O(R) O(R)O(R)O(R) 144ms (41.56%) Ans 2 (Python) Ans 3 (Python) 解法一: class Solution: def maxNumberOfFamilies(self, n: int, reservedSeats: List[List[int]]) -> int:
A.每日一题:1386. 安排电影院座位
A.每日一题:1386. 安排电影院座位 解析
leetcode刷题记录
leetcode刷题记录
leetcode 1386. 安排电影院座位 位运算
题目链接:https://leetcode-cn.com/problems/cinema-seat-allocation/ 在一个电影院里,有n行座位,每行10个,被过道分隔为左边三个中间四个右边三个。四口之家去看电影,有三种坐法,一是都坐中间,二是坐左边过道的两边(各坐两个人),三是坐右边过道两边(各坐两个人)。但是有的座位已经被预约了,问电影院还能够坐多少个这样的四口之家? note:1<...
位运算题集
位运算:https://blog.csdn.net/w8y56f/article/details/116402868。
LeetCode | 1386. Cinema Seat Allocation安排电影院座位【Python】
LeetCode 1386. Cinema Seat Allocation安排电影院座位【Medium】【Python】【哈希表】
LeetCode-Python-1386. 安排电影院座位(数组)
如上图所示,电影院的观影厅中有 n行座位,行编号从 1到 n,且每一行内总共有 10 个座位,列编号从 1 到 10 。 给你数组reservedSeats,包含所有已经被预约了的座位。比如说,researvedSeats[i]=[3,8],它表示第3行第8个座位被预约了。 请你返回最多能安排多少个 4 人家庭。4 人家庭要占据同一行内连续的 4 个座位。隔着过道...
leetcode1386. 安排电影院座位(贪心)
如上图所示,电影院的观影厅中有 n 行座位,行编号从 1 到 n ,且每一行内总共有 10 个座位,列编号从 1 到 10 。 给你数组 reservedSeats ,包含所有已经被预约了的座位。比如说,researvedSeats[i]=[3,8] ,它表示第 3 行第 8 个座位被预约了。 请你返回 最多能安排多少个 4 人家庭 。4 人家庭要占据 同一行内连续 的 4 个座位。隔着过道的座位(比方说 [3,3] 和 [3,4])不是连续的座位,但是如果你可以将 4 人家庭拆成过道两边各坐 2 人,这样
leetcode 1386. 安排电影院座位 中等
上图所示是最优的安排方案,总共可以安排 4 个家庭。蓝色的叉表示被预约的座位,橙色的连续座位表示一个 4 人家庭。四人小组必须被安排在同一排的四个座位上。,且每一行内总共有 10 个座位,列编号从 1 到 10。被预订时,才能使用该块。如上图所示,电影院的观影厅中有。返回一个整数,表示可以分配的。行座位,行编号从 1 到。只有当该块中的所有座位都。只能分配给一个小组。
leetcode 1386. Cinema Seat Allocation 安排电影院座位-内存96
Problem:耗时100%,首先排序的,按照resevedSeats[i]的行row排序,若行相同则升序排序列,只有四种情况是可以坐四个人的,bit操作的,拿到这四种情况对应的bit数字,bit上1代表坐了人1、[4 5 6 7]坐一起1种,也就是a2、[6 7 8 9]间隔坐1种,也就是c3、[2 3 4 5]间隔坐1种,也就是d4、[2 3 4 5. 6 7 8 9]间隔坐2种,也就是f。
位运算——1386. 安排电影院座位
leetcode 1386 func maxNumberOfFamilies(n int, reservedSeats [][]int) int { seats := make(map[int]byte) for k := range reservedSeats { if 2 <= reservedSeats[k][1] && reservedSeats[k][1] <= 9 { seats[reservedSeats[k]
1454



被折叠的 条评论
为什么被折叠?



