暴力穷举
class Solution {public int[] twoSum(int[] nums, int target) {int[] num = new int[2];for(int i=0;i<nums.length-1;i++){for(int j=i+1;j<nums.length;j++){if(nums[i]+nums[j]==target){num[0]=i;num[1]=j;}}}return num;}
}
HashMap,记录下标和对应值,避免二次扫描
key为元素值,value为每个元素对应下标
class Solution {public int[] twoSum(int[] nums, int target) {Map<Integer,Integer> storeMap = new HashMap<>(nums.length+1);int[] res = new int[2];for(int i=0;i<nums.length;i++){int another = target-nums[i];Integer anotherIndex=storeMap.get(another);if(null!=anotherIndex){res[0]=anotherIndex;res[1]=i;break;}else{storeMap.put(nums[i],i);}}return res;}
}