Cinema Seat Allocation LeetCode solution in JavaScript

1
/**
2
* @param {number} n
3
* @param {number[][]} reservedSeats
4
* @return {number}
5
*/
6
var maxNumberOfFamilies = function (n, reservedSeats) {
7
let a,
8
b,
9
c,
10
reservedMap = {},
11
ans = n * 2,
12
takenB = {};
13
for (let i = 0; i < reservedSeats.length; i++) {
14
let resverd = reservedSeats[i];
15
let row = resverd[0];
16
if (reservedMap[row] === undefined) {
17
reservedMap[row] = {};
18
}
19
if (
20
2 <= resverd[1] &&
21
resverd[1] <= 3 &&
22
reservedMap[row]["a"] === undefined
23
) {
24
//a is blocked now
25
ans--;
26
reservedMap[row]["a"] = true;
27
if (
28
reservedMap[row]["c"] === true &&
29
reservedMap[row]["b"] === undefined
30
) {
31
takenB[resverd[0]] = true;
32
ans++; //add for b
33
}
34
} else if (
35
8 <= resverd[1] &&
36
resverd[1] <= 9 &&
37
reservedMap[row]["c"] === undefined
38
) {
39
//c is blocked now
40
ans--;
41
reservedMap[row]["c"] = true;
42
if (
43
reservedMap[row]["a"] === true &&
44
reservedMap[row]["b"] === undefined
45
) {
46
takenB[resverd[0]] = true;
47
ans++; //add for b
48
}
49
} else if (4 <= resverd[1] && resverd[1] <= 5) {
50
//b is blocked now
51
if (reservedMap[row]["a"] === undefined) {
52
ans--;
53
reservedMap[row]["a"] = true;
54
}
55
if (takenB[resverd[0]] === true) {
56
ans--; //substract for b
57
takenB[resverd[0]] = false;
58
}
59
reservedMap[row]["b"] = true;
60
} else if (6 <= resverd[1] && resverd[1] <= 7) {
61
//b is blocked now
62
if (reservedMap[row]["c"] === undefined) {
63
ans--;
64
reservedMap[row]["c"] = true;
65
}
66
if (takenB[resverd[0]] === true) {
67
ans--; //substract for b
68
takenB[resverd[0]] = false;
69
}
70
reservedMap[row]["b"] = true;
71
}
72
}
73
return ans;
74
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0