Leet Code 1.两数之和

给定一个整数nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。
可以假设每种输入只会对应一个答案。但是,不能重复利用这个数组中同样的元素。

题解

提交代码

class Solution {
    public int[] twoSum(int[] nums, int target) {
        HashMap<Integer, Integer> map = new HashMap<>();
    	for(int i = 0; i < nums.length; i++) {
     		if(map.containsKey(target - nums[i])) {
    			return new int[] {map.get(target - nums[i]), i};
    		}
     		map.put(nums[i],i);
    	}
    	throw new IllegalArgumentException("No two sum solution");
    }
}

本题最简易方法:暴力法

  • 循环遍历两次,对于每个元素x遍历整个数组,判断是否存在target-x。

提交代码的思路:是用HashMap存储每个元素,每次存入元素的同时,判断是否存在target-x。

  • 两个方法不同之处是用空间换时间。
  • 熟悉了HashMap。
  • Map的containsKey(key)是否存在这个Key值
  • Map的get(key)获取key对应的value
原文地址:https://www.cnblogs.com/chenshaowei/p/11850114.html