题目
时间复杂度O(N^2)
class Solution {
public int[] twoSum(int[] nums, int target) {
int len = nums.length;
for(int i = 0;i < len;i++){
for(int j = i+1;j < len;j++){
if(nums[i] + nums[j] == target){
return new int[]{i,j};
}
}
}
throw new IllegalArgumentException("No two sum solution");
}
}
时间复杂度O(N)
空间换时间
class Solution {
public int[] twoSum(int[] nums, int target) {
HashMap<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);
}
throw new IllegalArgumentException("No two sum solution");
}
}