Find value of x from array pair

Find a pair that match to the given value x from the input array.

Input : [1,5,10,3,4] X=15

Output: [5,10]

Code:

package wordpress;

import java.util.*;

public class FindX {

    public static HashSet<List<Integer>> findXFromGivenArray(Integer[] input, int x) {
        HashSet<List<Integer>> result = new HashSet<>();
        HashSet<Integer> hashSet = new HashSet<>();
        for (Integer value : input) {
            hashSet.add(value);
        }
        for (Integer value : input) {
            List<Integer> pair = new LinkedList<>();
            if (hashSet.contains(x - value)) {
                pair.add(value);
                pair.add(x - value);
                result.add(pair);
                hashSet.remove(value);
            }
        }
        return result;
    }

    public static void main(String[] args) {
        System.out.println(findXFromGivenArray(new Integer[]{1, 5, 10, 3, 4}, 15)); // [5,10]
        System.out.println(findXFromGivenArray(new Integer[]{1, 2, 3, 4}, 4)); // [1,3] [2,2]
        System.out.println(findXFromGivenArray(new Integer[]{1,2}, 10)); // []
        System.out.println(findXFromGivenArray(new Integer[]{-1,-3,-8,-5}, -4)); // [-1,-3]
    }
}
Scroll to Top