Consecutive Available Seats

easy database sql

Problem

Cinema(seat_id, free). Return seat_ids that are free AND have a consecutive free neighbor.

Inputc=[(1,1),(2,0),(3,1),(4,1),(5,1)]
Output[3,4,5]
Seats 3,4,5 form a run of free seats.

SELECT DISTINCT c1.seat_id
FROM Cinema c1, Cinema c2
WHERE ABS(c1.seat_id - c2.seat_id) = 1 AND c1.free = 1 AND c2.free = 1
ORDER BY c1.seat_id;
Time: O(n) Space: O(n)