Ad-Free Sessions — LeetCode 1809 Python Solution

EasyLeetCode PremiumDatabase
Problem
#1809
Reading time
3 min

Table schema

SQL
Table: Playback +-------------+------+ | Column Name | Type | +-------------+------+ | session_id | int | | customer_id | int | | start_time | int | | end_time | int | +-------------+------+ session_id is the column with unique values for this table. customer_id is the ID of the customer watching this session.

Example

SQL
+-------------+------+
| Column Name | Type |
+-------------+------+
| session_id  | int  |
| customer_id | int  |
| start_time  | int  |
| end_time    | int  |
+-------------+------+
session_id is the column with unique values for this table.
customer_id is the ID of the customer watching this session.
The session runs during the inclusive interval between start_time and end_time.
It is guaranteed that start_time <= end_time and that two sessions for the same customer do not intersect.

Python solution

Python
import duckdb
import pandas as pd

def solution(playback: pd.DataFrame, ads: pd.DataFrame) -> pd.DataFrame:
    con = duckdb.connect()
    con.register("Playback", playback)
    con.register("Ads", ads)
    return con.execute("""SELECT session_id
FROM Playback
WHERE
    session_id NOT IN (
        SELECT session_id
        FROM
            Playback AS p
            JOIN Ads AS a
                ON p.customer_id = a.customer_id AND a.timestamp BETWEEN p.start_time AND p.end_time
    );""").df()

Complexity

MeasureComplexity
TimeO(n log n) (typical)
SpaceO(n) auxiliary

Related problems

Frequently asked questions

How hard is LeetCode 1809. Ad-Free Sessions?
LeetCode 1809. Ad-Free Sessions is rated Easy on LeetCode.
What topics does LeetCode 1809. Ad-Free Sessions cover?
LeetCode 1809. Ad-Free Sessions is tagged Database on LeetCode.
Is LeetCode 1809. Ad-Free Sessions a premium problem?
Yes. LeetCode 1809. Ad-Free Sessions is a LeetCode Premium problem, so the full statement and test cases require a paid LeetCode subscription.

Stuck on problems like this in a live interview?

Stealth Interview is a desktop app for macOS and Windows. It reads the problem off your screen and returns a working solution with a step-by-step explanation and its time and space complexity — invisible to screen sharing.

Get Stealth Interview