题目
来源 leetcode
个人题解
第一版本
var twoSum = function(nums, target) {
let len = nums.length;
let indexNums = [];
let flag = false;
for(let i = len - 1; i >= 0; i --){
for(let j = 0; j < i; j ++){
if(nums[i] + nums[j] === target){
indexNums[0] = j;
indexNums[1] = i;
flag = true;
break;
}
}
if(flag){
break;
}
}
return indexNums;
};
第二版本
class Solution {
public int[] twoSum(int[] nums, int target) {
HashMap<Integer, Integer> num = new HashMap<Integer, Integer>();
int[] indexs = new int[2];
int len = nums.length;
for(int i = 0; i < len; i ++){
if(num.containsKey(nums[i])){
indexs[1] = i;
indexs[0] = num.get(nums[i]);
break;
}
num.put(target-nums[i], i);
}
return indexs;
}
}
第三版
var twoSum = function(nums, target) {
map = new Map();
let len = nums.length;
for(let i = 0; i < len; i ++){
let temp = target - nums[i];
if(map.has(temp)){
return [map.get(temp), i];
}
map.set(nums[i], i);
}
};