在给定数组中找出和为目标值的那两个整数,并返回他们的数组下标

编程

给定一个整数数组 nums 和一个目标值 target,请在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。

可以假设每种输入只会对应一个答案。但是,不能重复利用这个数组中同样的元素。

class Solution{

    public int[] twoSum(int[] nums, int target){

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

                for(int j=i+1; j<nums.length; j++){

                        if(nums[j] == target - nums[i]){

                                    return new int[]{i,j};

                        }

                }

        }

        throw new illegalArgumentException("No two sum solution");

    }
}

class Solution{

    public int[] twoSum(int[] nums, int target){

            Map<Integer,Integer> map = new HashMap<>();

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

                    map.put(nums[i],i);

            }

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

                    int complement = target - nums[i];

                    if(map.containsKey(complement) && map.get(complement)!=i){

                            return new int[] {i,map.get(complement)};

                    }

            }

            throw new illegalArgumentException("No two sum solution");

    }

}

 

class Solution{

        public int[] twoSum(int[] nums, int target){

                Map<Integer, Integer> map = new HashMap<>();

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

                        int complement = target -nums[i];

                        if(map.containsKey(complement)){

                                return new int[]{map.get(complement),i};

                        }

                        map.put(nums[i],i);

                }

                throw new illegalArgumentException("No two sum solution");

        }

}

以上是 在给定数组中找出和为目标值的那两个整数,并返回他们的数组下标 的全部内容, 来源链接: utcz.com/z/519272.html

回到顶部