方式一:暴力递归
class Solution {
public int[] twoSum(int[] nums, int target) {
int [] array=new int[2];
lable:for(int i=0;i<nums.length;i++) {
for(int j=i+1;j<nums.length;j++) {
if(nums[i]+nums[j]==target) {
array[0]=i;
array[1]=j;
break lable;//设置了一个标签,若找到了结束最外层循环
}
}
}
return array;
}
}
方式二:哈希表
class Solution {
//哈希表中key是nums[i],value是数组的索引i
public int[] twoSum(int[] nums, int target) {
Map<Integer,Integer> map=new HashMap<>();//构建哈希表
for(int i=0;i<nums.length;i++){
if(map.containsKey(target-nums[i]))//如果哈希表中存的值与nums[i]加起来等于target
return new int[]{map.get(target-nums[i]),i};//返回哈希表数的value值和数组中的值的索引
map.put(nums[i],i);//将该数添加进哈希表
}
return new int[0];//未找到
}
}