题目
算法思想
方法一:循环求解,遍历所有组合判断是否与目标值相等,时间复杂度较高。
方法二:用hashmap存储数组元素,来快速搜索target-nums[i]
代码
#方法一
public int[] twoSum(int[] nums, int target) {
for(int i = 0;i < nums.length - 1;i++) {
for(int j = i + 1;j < nums.length;j++){
if(nums[i] + nums[j] == target){
return new int[]{i,j};
}
}
}
return null;
}
#方法二
public int[] twoSum(int[] nums, int target) {
HashMap<Integer,Integer> hashMap = new HashMap<>();
for(int i = 0;i < nums.length;i++) {
if(hashMap.containsKey(target - nums[i])){
return new int[]{hashMap.get(target - nums[i]),i};
}
hashMap.put(nums[i],i);
}
return null;
}