查找唯一对的索引,其总数等于目标数

时间:2015-10-09 00:37:35

标签: java arrays algorithm data-structures

当我尝试查找总数等于目标数的唯一对的索引时,我想出了这段代码。对于该解决方案,时间复杂度和空间复杂度都是O(n)。有没有其他有效的方法来解决它?或者这个问题的后续问题是什么?

    public static ArrayList<int[]> findingTwoSum(int arr[], int target){

    if (arr == null || arr.length < 1){
        throw new IllegalArgumentException();
    }
    HashMap<Integer, Integer> map = new HashMap<>();
    ArrayList<int[]> result = new ArrayList<>();


    for (int i = 0 ; i < arr.length ; i++){

        if (!map.containsKey(arr[i])){
            map.put(target-arr[i], i);
        }
        else{

            if(!result.contains(map.get(arr[i]))){
            result.add(new int[]{i,map.get(arr[i])});
            }
        }
    }           

    return result;          
}

0 个答案:

没有答案