Skip to main content

All Valid Triplets That Can Represent a Country - Solution & Explanation

EasyPremiumFree on FleetCodeDatabase5 min readAsked at: Amazon
Practice this problem

Problem Statement

Table: SchoolA

+---------------+---------+
| Column Name   | Type    |
+---------------+---------+
| student_id    | int     |
| student_name  | varchar |
+---------------+---------+
student_id is the column with unique values for this table.
Each row of this table contains the name and the id of a student in school A.
All student_name are distinct.

 

Table: SchoolB

+---------------+---------+
| Column Name   | Type    |
+---------------+---------+
| student_id    | int     |
| student_name  | varchar |
+---------------+---------+
student_id is the column with unique values for this table.
Each row of this table contains the name and the id of a student in school B.
All student_name are distinct.

 

Table: SchoolC

+---------------+---------+
| Column Name   | Type    |
+---------------+---------+
| student_id    | int     |
| student_name  | varchar |
+---------------+---------+
student_id is the column with unique values for this table.
Each row of this table contains the name and the id of a student in school C.
All student_name are distinct.

 

There is a country with three schools, where each student is enrolled in exactly one school. The country is joining a competition and wants to select one student from each school to represent the country such that:

  • member_A is selected from SchoolA,
  • member_B is selected from SchoolB,
  • member_C is selected from SchoolC, and
  • The selected students' names and IDs are pairwise distinct (i.e. no two students share the same name, and no two students share the same ID).

Write a solution to find all the possible triplets representing the country under the given constraints.

Return the result table in any order.

The result format is in the following example.

 

Example 1:

Input: 
SchoolA table:
+------------+--------------+
| student_id | student_name |
+------------+--------------+
| 1          | Alice        |
| 2          | Bob          |
+------------+--------------+
SchoolB table:
+------------+--------------+
| student_id | student_name |
+------------+--------------+
| 3          | Tom          |
+------------+--------------+
SchoolC table:
+------------+--------------+
| student_id | student_name |
+------------+--------------+
| 3          | Tom          |
| 2          | Jerry        |
| 10         | Alice        |
+------------+--------------+
Output: 
+----------+----------+----------+
| member_A | member_B | member_C |
+----------+----------+----------+
| Alice    | Tom      | Jerry    |
| Bob      | Tom      | Alice    |
+----------+----------+----------+
Explanation: 
Let us see all the possible triplets.
- (Alice, Tom, Tom) --> Rejected because member_B and member_C have the same name and the same ID.
- (Alice, Tom, Jerry) --> Valid triplet.
- (Alice, Tom, Alice) --> Rejected because member_A and member_C have the same name.
- (Bob, Tom, Tom) --> Rejected because member_B and member_C have the same name and the same ID.
- (Bob, Tom, Jerry) --> Rejected because member_A and member_C have the same ID.
- (Bob, Tom, Alice) --> Valid triplet.

Approach Overview

Problem Overview: You are given three tables representing schools (SchoolA, SchoolB, and SchoolC). Each row stores how many students a school can send to represent a country. The goal is to list every triplet of schools (one from each table) whose combined student count does not exceed the allowed country limit.

Approach 1: Filtered CROSS JOIN (O(A × B × C) time, O(1) space)

The straightforward way is to generate every possible triplet of schools and then filter out the combinations that violate the student limit. In SQL, this is naturally expressed using a CROSS JOIN. A cross join pairs each row from SchoolA with every row from SchoolB and every row from SchoolC, producing all possible combinations. After generating these combinations, apply a WHERE condition to keep only rows where a.student_count + b.student_count + c.student_count is within the allowed limit.

This approach works because the problem explicitly requires evaluating combinations across three independent tables. SQL engines are optimized for join operations, so expressing the logic with joins keeps the query concise and readable. Each resulting row directly represents one valid triplet that can represent the country.

The time complexity is O(A × B × C) because every row in SchoolA is paired with every row in SchoolB and SchoolC. Space complexity is O(1) for the query itself since the database engine streams results without requiring additional data structures in the query logic. In practice, performance depends on table sizes and the database optimizer.

Implementation typically selects the identifiers from each table while applying the constraint directly in the WHERE clause. The structure looks like:

SELECT a.school_id, b.school_id, c.school_id FROM SchoolA a CROSS JOIN SchoolB b CROSS JOIN SchoolC c WHERE a.student_count + b.student_count + c.student_count <= limit;

This pattern—generate combinations and filter—is common in SQL and database interview problems where multiple independent datasets must be combined. Understanding how joins expand rows is the key insight.

Recommended for interviews: The filtered CROSS JOIN approach is exactly what interviewers expect. The problem mainly tests whether you recognize that each table contributes one element of the triplet and that SQL joins can generate combinations. Once you form the cross join, the constraint becomes a simple arithmetic filter. The logic is short, expressive, and aligns with how relational databases are designed to handle combinational queries.

Solution

Code

MySQL

Try this approach in the editor →

Detailed Complexity Analysis

ApproachTimeSpaceWhen to Use
Filtered CROSS JOINO(A × B × C)O(1)Standard SQL solution when you must evaluate all combinations across three independent tables
JOIN with WHERE ConstraintO(A × B × C)O(1)When writing production SQL where readability matters; logically identical to cross join but expressed with explicit filters

Video Solution

Leetcode 1623 - All Valid Triplets - Easiest Solution - Solved & Explained by Everyday Data ScienceEveryday Data Science719 views views

Watch 2 more video solutions →

Frequently Asked Questions

Is All Valid Triplets That Can Represent a Country easy or hard?
The problem is classified as Easy. It mainly checks whether you understand how SQL CROSS JOIN works and how to filter combinations using a WHERE clause.
All Valid Triplets That Can Represent a Country Python/Java solution
The official solution is written in SQL because the problem operates directly on database tables. In application code like Python or Java, you would simulate the same logic with three nested loops over the datasets and check whether the combined student count satisfies the constraint.
How to solve All Valid Triplets That Can Represent a Country in O(n)?
An O(n) solution is not possible because the problem requires evaluating combinations across three independent tables. Every potential triplet must be considered to check the student limit. As a result, the natural complexity is multiplicative: O(A × B × C).
What is the best approach for All Valid Triplets That Can Represent a Country?
The standard solution uses a SQL CROSS JOIN across the three tables (SchoolA, SchoolB, and SchoolC) to generate every possible triplet. A WHERE clause then filters combinations where the total student count exceeds the allowed limit. This approach directly models the requirement of choosing one school from each table.
Is All Valid Triplets That Can Represent a Country asked at Google/Amazon/Meta?
This problem reflects the type of SQL join and filtering questions commonly used in database interview rounds at companies like Amazon and Meta. The focus is understanding joins, Cartesian products, and filtering aggregated conditions rather than algorithmic complexity.
What data structure is used in All Valid Triplets That Can Represent a Country?
The solution relies on relational database tables and SQL join operations rather than traditional data structures. The key concept is a CROSS JOIN that produces Cartesian combinations of rows from three tables.
What is the time complexity of All Valid Triplets That Can Represent a Country?
The time complexity is O(A × B × C), where A, B, and C are the number of rows in SchoolA, SchoolB, and SchoolC. Every row from each table participates in the cross join, producing all possible triplets before filtering. Space complexity in the SQL query itself is O(1).

Ready to solve this problem?

Practice All Valid Triplets That Can Represent a Country with our built-in code editor and test cases.

Practice on FleetCode