解法一:暴力。时间复杂度O(n2);
class Solution {
public int[] twoSum(int[] nums, int target) {
for(int i=0;i<nums.length-1;i++) {
int num=target-nums[i];
for(int j=i+1;j<nums.length;j++) {
if(num==nums[j]) {
return new int[] {i,j};
}
}
}
return new int[1];
}
}
解法二:哈希表遍历,时间复杂度O(n);
class Solution {
public int[] twoSum(int[] nums, int target) {
Map<Integer,Integer> map=new HashMap<>();
for(int i=0;i<nums.length;i++){
int num=target-nums[i];
if(map.containsKey(num)){
return new int[] {map.get(num),i};
}
else{
map.put(nums[i],i);
}
}
return new int[1];
}
}