1. 两数之和

题目:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
解法-哈希表法
思路:以哈希表的空间换取时间,以元素为key,下标为value,使用减法检查map中是否已经包含满足条件的数
代码
class Solution {
public int[] twoSum(int[] nums, int target) {
int len = nums.length;
int i=0;
Map<Integer,Integer> map = new HashMap(len-1); //至少最后一个不用存
map.put(nums[0],0);
for(i=1;i<len;i++){
if(map.containsKey(target-nums[i])){
break;
}
map.put(nums[i],i);
}
return new int[]{map.get(target-nums[i]),i};
}
}

posted @ 2020-10-27 19:54  for_ward  阅读(66)  评论(0)    收藏  举报