Find 2 numbers in an unsorted array equal to a given sum

前端 未结 18 880
太阳男子
太阳男子 2020-11-29 19:56

We need to find pair of numbers in an array whose sum is equal to a given value.

A = {6,4,5,7,9,1,2}

Sum = 10 Then the pairs are - {6,4} ,

18条回答
  •  独厮守ぢ
    2020-11-29 20:37

        public void printPairsOfNumbers(int[] a, int sum){
        //O(n2)
        for (int i = 0; i < a.length; i++) {
            for (int j = i+1; j < a.length; j++) {
                if(sum - a[i] == a[j]){
                    //match..
                    System.out.println(a[i]+","+a[j]);
                }
            }
        }
    
        //O(n) time and O(n) space
        Set cache = new HashSet();
        cache.add(a[0]);
        for (int i = 1; i < a.length; i++) {
            if(cache.contains(sum - a[i])){
                //match//
                System.out.println(a[i]+","+(sum-a[i]));
            }else{
                cache.add(a[i]);
            }
        }
    
    }
    

提交回复
热议问题