Skip to content

Latest commit

 

History

History
38 lines (29 loc) · 894 Bytes

1386. 安排电影院座位.md

File metadata and controls

38 lines (29 loc) · 894 Bytes
  • 位运算
function maxNumberOfFamilies(n: number, reservedSeats: number[][]): number {

    const map: Map<number, number> = new Map<number, number>();

    for (const [row, col] of reservedSeats) {
        if (col === 1 || col === 10) {
            continue;
        }
        let value: number = map.get(row) || 0;
        value |= (1 << 9 - col);
        map.set(row, value);
    }

    let count: number = (n - map.size) * 2;

    const left: number = 0b11110000,
        middle: number = 0b11000011,
        right: number = 0b00001111;

    for (const [, value] of map) {
        if (
            (value | left) === left
            || (value | middle) === middle
            || (value | right) === right
        ) {
            ++count;
        }
    }

    return count;
};