02链表:1、两数之和
1、两数之和
文章目录
- 1、两数之和
- 方法一:暴力破解法
- 方法二:哈希表
重点:思路应该放在通过target通过一个数,找到另一个数;key存储元素,value存储下标
- 暴力破解法:双层for循环查找
- 哈希表:for循环,从hash中找符合target的另一个数,找到就返回,找不到就添加进hash,继续循环
方法一:暴力破解法
略
方法二:哈希表
public int[] twoSum(int[] nums, int target) {
//存储nums的数据,key为数字,value为下标
Map<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < nums.length; i++) {
//取出当前数据
int num = nums[i];
//计算另一个数字
int num2 = target - num;
//判断是否包含
if (map.containsKey(num2)) {
return new int[]{map.get(num2),i};
}
//不包含就放入map,继续下一个
map.put(num, i);
}
return new int[]{};
}