โ†‘ Top

Find Pair

ullas kunder

Designer & Developer

๐Ÿง  Find a Pair with a Given Sum

โœ… Simple Statement

Given an array of integers and a target value, check if there's a pair of elements in the array whose sum equals the target.

๐Ÿงฉ Example

Input: nums = [8, 7, 2, 5, 3, 1], target = 10
Output: True (Because 7 + 3 = 10)

๐Ÿงพ Pseudocode (Optimal โ€“ Using Hash Map)

create empty map
for each number in array:
    if (target - current number) exists in map:
        return true
    add current number to map
return false

๐Ÿงช Stack Trace (Optimal Method)

Input: [8, 7, 2, 5, 3, 1], target = 10

StepIndexValueMaptarget - valueFound?
108{}2โŒ
217{8}3โŒ
322{8, 7}8โœ…

๐Ÿ Python Code

Brute-force (O(nยฒ))

def find_pair_brute(nums, target):
    for i in range(len(nums)):
        for j in range(i+1, len(nums)):
            if nums[i] + nums[j] == target:
                return True
    return False

Optimal (O(n))

def find_pair_optimal(nums, target):
    seen = {}
    for i, num in enumerate(nums):
        if target - num in seen:
            return True
        seen[num] = i
    return False

๐Ÿ“œ JavaScript Code

Brute-force

function findPairBrute(nums, target) {
  for (let i = 0; i < nums.length; i++) {
    for (let j = i + 1; j < nums.length; j++) {
      if (nums[i] + nums[j] === target) return true;
    }
  }
  return false;
}

Optimal

function findPairOptimal(nums, target) {
  const seen = new Map();
  for (let i = 0; i < nums.length; i++) {
    if (seen.has(target - nums[i])) return true;
    seen.set(nums[i], i);
  }
  return false;
}