如上图所示,电影院的观影厅中有 n 行座位,行编号从 1 到 n ,且每一行内总共有 10 个座位,列编号从 1 到 10 。
给你数组 reservedSeats ,包含所有已经被预约了的座位。比如说,researvedSeats[i]=[3,8] ,它表示第 3 行第 8 个座位被预约了。
请你返回 最多能安排多少个 4 人家庭 。4 人家庭要占据 同一行内连续 的 4 个座位。隔着过道的座位(比方说 [3,3] 和 [3,4])不是连续的座位,但是如果你可以将 4 人家庭拆成过道两边各坐 2 人,这样子是允许的。
class Solution:
def maxNumberOfFamilies(self, n: int, reservedSeats: List[List[int]]) -> int:
res = 0
reservedSeats.sort(key=lambda x:x[0])
k=0
for i in range(n):
nums = [0 for _ in range(10)]
while k<len(reservedSeats) and (reservedSeats[k][0]-1)==i:
nums[reservedSeats[k][1]-1]=1
k+=1
if sum(nums[1:5])==0:
res+=1
nums[4]=1
if sum(nums[3:7])==0:
res+=1
nums[6]=1
if sum(nums[5:9])==0:
res+=1
nums[8]=1
return res
class Solution(object):
def maxNumberOfFamilies(self, n, reservedSeats):
nums = [[0 for _ in range(10)] for _ in range(n)]
res = 0
for one in reservedSeats:
nums[one[0]-1][one[1]-1] = 1
for i in range(n):
if sum(nums[i][1:5])==0:
res+=1
nums[i][4]=1
if sum(nums[i][3:7])==0:
res+=1
nums[i][6]=1
if sum(nums[i][5:9])==0:
res+=1
nums[i][8]=1
return res