Pair Sum to Target
Problem
Given an array of integers and a target value, return the indices of two distinct elements whose sum equals the target. You may assume exactly one such pair exists.
Input
nums = [2, 7, 11, 15], target = 9Output
[0, 1]nums[0] + nums[1] == 2 + 7 == 9.
def pair_sum(nums, target):
seen = {}
for i, x in enumerate(nums):
need = target - x
if need in seen:
return [seen[need], i]
seen[x] = i
return None
function pairSum(nums, target) {
const seen = new Map();
for (let i = 0; i < nums.length; i++) {
const need = target - nums[i];
if (seen.has(need)) return [seen.get(need), i];
seen.set(nums[i], i);
}
return null;
}
class Solution {
public int[] pairSum(int[] nums, int target) {
Map<Integer, Integer> seen = new HashMap<>();
for (int i = 0; i < nums.length; i++) {
int need = target - nums[i];
if (seen.containsKey(need)) return new int[]{ seen.get(need), i };
seen.put(nums[i], i);
}
return null;
}
}
vector<int> pairSum(vector<int>& nums, int target) {
unordered_map<int, int> seen;
for (int i = 0; i < (int)nums.size(); i++) {
int need = target - nums[i];
if (seen.count(need)) return { seen[need], i };
seen[nums[i]] = i;
}
return {};
}