1,给定一个整型的数组,给定一个值,当数据中两个数之和等于给定的值时返回,两个整数在数组中的下标
我的思路:两层遍历,如果两个的数的和相加,等于给定的值,返回一个整形数组,数组内容为当前的下标
暴力遍历的方法比较简单,不做罗列
新思路:利用hashmap
声明一个hashmap,key为元素的值,value为元素的下标,循环数组
如果map中不存在target-当前值得key则,存入map,继续遍历,
如果存在key=target-当前值 直接返回当前下标和key值为差值的下标
HashMap<Integer,Integer> map = new HashMap<>();
for (int i = 0;i<nums.length;i++){
if(!map.containsKey(target-nums[i])){
map.put(nums[i],i);
}else{
int result = map.get(target-nums[i]);
tagtNums[0] = result;
tagtNums[1] = i;
}
}