Program to find length of longest distinct sublist in Python



A distinct sublist is a continuous portion of a list in which all the elements are different from each other. The goal is to find the maximum length of such a sublist within a given list of elements.

In Python, a list is an ordered and mutable data structure in which sequence of elements are enclosed in square brackets []. The elements in a list can be of any datatype such as integer, float, string etc., and each element in a list has a unique index position which starts from 0.

Using set() function

The set() is a built-in function in Python which is used create a set data structure to store unique elements. To find the longest sublist with all unique elements, we can use a sliding window approach. In this approach, we maintain a set to track elements in the current window. If a duplicate is found then we reduce the window size by moving to the left until the duplicate is removed. The longest distinct sublist is the maximum window size.

Example-1

Following is the example which shows how to use set() function to calculate the length of the longest sublist with unique elements -

def longest_distinct_sublist(lst):
    seen = set()
    left = 0
    max_len = 0

    for right in range(len(lst)):
        while lst[right] in seen:
            seen.remove(lst[left])
            left += 1
        seen.add(lst[right])
        max_len = max(max_len, right - left + 1)

    return max_len

# Sample input list
numbers = [1, 2, 3, 2, 4, 5]
print("Length of longest distinct sublist:", longest_distinct_sublist(numbers))

Here is the output of the above example -

Length of longest distinct sublist: 4

Example-2

Below is another example where we calculate the longest distinct sublist which contains only distinct elements using the set() function -

def longest_distinct_sublist(lst):
    seen = set()
    start = 0
    max_length = 0

    for end in range(len(lst)):
        while lst[end] in seen:
            seen.remove(lst[start])
            start += 1
        seen.add(lst[end])
        max_length = max(max_length, end - start + 1)

    return max_length

# Sample input list
numbers = [5, 1, 3, 5, 2, 3, 4, 1]
print("Longest distinct sublist length:", longest_distinct_sublist(numbers))

Below is the output of the above example -

Longest distinct sublist length: 5
Updated on: 2025-09-01T12:00:56+05:30

407 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements