1.算法描述
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
2.要求运行结果eg:
输入:nums = [3,2,4], target = 6
输出:[1,2]
3.java demo实现
1).for循环实现
public int[] twoSum(int[] nums, int target) {
int[] sumArray=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){
sumArray[0]=i;
sumArray[1]=j;
System.out.print("["+i+","+j+"]");
break;
}
}
}
return sumArray;
}
2).hashmap实现
public int[] twoSum(int[] nums, int target) {
int[] sumArray=new int[2];
HashMap<Integer,Integer> tempNum=new HashMap<>();
tempNum.put(nums[0],0);
for(int i=0;i<nums.length;i++){
int matchNum=target-nums[i];
if(tempNum.containsKey(matchNum)){
sumArray[0]=i;
sumArray[1]=tempNum.get(matchNum);
}else{
tempNum.put(nums[i],i);
}
}
return sumArray;
}