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

public class LeetCode {
    public static void main(String[] args) {
        int[] nums={2,7,11,15};
        int target=3;
        int[] ints = twoSum(nums, target);
        if(ints!=null){
            for (int i = 0; i < ints.length; i++) {
                System.out.println(ints[i]);
            }
        }else {
            System.out.println("不存在这两个数");
        }
    }

    private static int[] twoSum(int[] nums,int target){
        if(nums==null||nums.length==0){
            throw new IllegalArgumentException("数组不能为空");
        }
        Map<Integer,Integer> map=new HashMap<>();
        for (int i = 0; i <nums.length ; i++) {
            int num=target-nums[i];
            if(map.containsKey(num)){
                Integer index = map.get(num);
                return new int[]{index,i};
            }
            map.put(nums[i],i);
        }
        return null;
    }
}

 

 posted on 2020-12-19 12:28  会飞的金鱼  阅读(72)  评论(0)    收藏  举报