题目描述:
解题思路:
这是一道很简单的题,可以用暴力直接求出,但是还可以使用哈希表求。
//暴力
public int[] twoSum(int[] nums, int target) {
int[] arr=new int[2];
for(int i=0;i<nums.length;i++)
{
for(int j=i+1;j<nums.length;j++)
{
if(nums[i]+nums[j]==target)
{
arr[0]=i;
arr[1]=j;
break;
}
}
}
return arr;
}
//链表
public static int[] twoSum2(int[] nums,int target){
Map<Integer,Integer> map=new HashMap<>();
for (int i = 0; i < nums.length; i++) {
if(map.containsKey(target-nums[i]))
return new int[] {i,map.get(target-nums[i])};
map.put(nums[i],i);//key是数组的值,value是下标,这样if好判断
}
return new int[]{0,0};//随便返回一个即可
}