LeetCode系列之1---2Sum

题目地址:https://leetcode.com/problems/two-sum/

题目:

给定一个整数数组,返回两个数字的索引,使它们相加到特定值。

可以假设每个输入只有一个解决方案,并且不能两次使用相同的元素。

 

例:

给定nums = [2,7,11,15],target = 9,

因为nums [0] + nums [1] = 2 + 7 = 9,
返回[0,1]。

 

 

public class TwoSum {
    public static void main(String[] args){
        int[] numbers = {1,2,3,4,5,6,7,8,9,10};
        int target = 10;
        int[] result = TwoSum(numbers,target);
        System.out.println(Arrays.toString(result));
    }

    public static int[] TwoSum(int[] numbers, int target){
        Map map = new HashMap<>();
        for (int i = 0; i < numbers.length; i++) {
            int x = numbers[i];
            if (map.containsKey(target - x)){
                return new int[] {map.get(target - x)+1, i+1 };
            }
            map.put(x, i);
        }
        throw new IllegalArgumentException("No TwoSum Solution!");
    }
}

 

知识点:

1、Map map = new HashMap<>();

2、map.containsKey: 如果此映射包含指定键的映射关系,则返回true

3、数组的构造方法:

     int[] a = new int[]{1,2,3};//{1,2,3} 

     int[] b = new int[3];//{0,0,0} 

     int[] c = {1,2,3}  //{1,2,3} 

 

System.out.println(Arrays.toString(new int[]{1,2,3}));//{1,2,3} 

 

 

4、throw new IllegalArgumentException();

 

你可能感兴趣的:(leetcode)