Featured Post

Mastering flat_map in Python with List Comprehension

Image
Introduction In Python, when working with nested lists or iterables, one common challenge is flattening them into a single list while applying transformations. Many programming languages provide a built-in flatMap function, but Python does not have an explicit flat_map method. However, Python’s powerful list comprehensions offer an elegant way to achieve the same functionality. This article examines implementation behavior using Python’s list comprehensions and other methods. What is flat_map ? Functional programming  flatMap is a combination of map and flatten . It transforms the collection's element and flattens the resulting nested structure into a single sequence. For example, given a list of lists, flat_map applies a function to each sublist and returns a single flattened list. Example in a Functional Programming Language: List(List(1, 2), List(3, 4)).flatMap(x => x.map(_ * 2)) // Output: List(2, 4, 6, 8) Implementing flat_map in Python Using List Comprehension Python’...

Python Logic to Find All Unique Pairs in an Array

 Here's the Python logic for finding all unique pairs in an array that sum up to a target value.

Unique pairs in an array


Python Unique Pair

Problem


Write a Python function that finds all unique pairs in an array whose sum equals a target value. Avoid duplicates in the result. For example:

  • Input: arr = [2, 4, 3, 5, 7, 8, 9], target = 9
  • Output: [(2, 7), (4, 5)]

Hints

  • Use a set for tracking seen numbers.
  • Check for complements efficiently.

Example

def find_unique_pairs(arr, target):

    """

    Finds all unique pairs in the array that sum up to the target value.


    Parameters:

    arr (list): The input array of integers.

    target (int): The target sum value.


    Returns:

    list: A list of unique pairs that sum to the target value.

    """

    seen = set()

    pairs = set()


    for num in arr:

        complement = target - num

        if complement in seen:

            # Add the pair in sorted order to avoid duplicates

            pairs.add(tuple(sorted((num, complement))))

        seen.add(num)

    

    return list(pairs)


# Example usage

input_array = [2, 4, 3, 5, 7, 8, 9]

target_sum = 9

result = find_unique_pairs(input_array, target_sum)

print("Input Array:", input_array)

print("Target Sum:", target_sum)

print("Unique Pairs:", result)


Output:

For the input array [2, 4, 3, 5, 7, 8, 9] and target 9, the output will be:


Input Array: [2, 4, 3, 5, 7, 8, 9] Target Sum: 9 Unique Pairs: [(4, 5), (2, 7)]

Explanation:

  1. Tracking Seen Elements (seen Set):

    • Store numbers already processed in a set.
    • This helps in quickly checking if the complement (i.e., target - num) exists.
  2. Avoiding Duplicate Pairs (pairs Set):

    • Pairs are stored in a set to automatically handle duplicate pairs.
    • Each pair is added as a sorted tuple to maintain consistency (e.g., (2, 7) and (7, 2) are treated as the same).
  3. Conversion to List:

    • The result is converted to a list for output.


Comments

Popular posts from this blog

SQL Query: 3 Methods for Calculating Cumulative SUM

Big Data: Top Cloud Computing Interview Questions (1 of 4)

5 SQL Queries That Popularly Used in Data Analysis