Description
Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution, and you may not use the same element twice.
Example
Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].solution_1
算法复杂度为O(n*n)
public void twoSum(int[] number, int target) {
int length = number.length;
for (int i = 0; i < length; i++) {
for (int j = length - 1; j > i; j--) {
if ((number[i] + number[j]) == target) {
System.out.println("those two indexes is : " + i + "," + j);
}
}
}
}
- solution_2
算法复杂度为O(n)
public static void twoSumHash(int[] number,int target) {
int length = number.length;
HashMap<Integer,Integer> hashMap = new HashMap<>();
for(int i=0;i<length;i++) {
if(!hashMap.containsKey(number[i])) {
hashMap.put(target-number[i], i);
}else {
System.out.println("hashmap,those two indexes is :"+hashMap.get(number[i])+","+i);
}
}
}