Ad-Free Sessions — LeetCode 1809 Python Solution
EasyLeetCode PremiumDatabase
- Problem
- #1809
- Reading time
- 3 min
- Source
- leetcode.com
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
| Measure | Complexity |
|---|---|
| Time | O(n log n) (typical) |
| Space | O(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.