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.
- 정수 배열이 주어지면, 두 숫자의 합이 target 이 되면 index 를 반환하여라
- 각 입력에는 정확히 하나의 해결책이 있다고 가정할 수 있으며, 동일한 요소를 두 번 사용할 수 없다.
example
Given nums = [2, 7, 11, 15], target = 9, Because nums[0] + nums[1] = 2 + 7 = 9, return [0, 1].
// 초기 코드
/**
* @param {number[]} nums
* @param {number} target
* @return {number[]}
*/
var twoSum = function(nums, target) {
};
/**
* @param {number[]} nums
* @param {number} target
* @return {number[]}
*/
var twoSum = function(nums, target) {
const resultNumberIndex = [];
const numsLength = nums.length;
for(let i = 0; i < numsLength; i++) {
for(let j = 0; j < numsLength; j++) {
if(i != j) {
if(nums[i] + nums[j] === target) {
resultNumberIndex.push(i);
resultNumberIndex.push(j);
break;
}
}
}
if(resultNumberIndex.length != 0) {
break;
}
}
return resultNumberIndex;
};
/**
* @param {number[]} nums
* @param {number} target
* @return {number[]}
*/
var twoSum = function(nums, target) {
const hashTable = {};
let resultNumberArray = [];
for(const [index, num] of nums.entries()) {
const differenceValue = target - num;
if(hashTable[num] != undefined) {
resultNumberArray = [hashTable[num], index];
break;
} else {
// undefined
hashTable[differenceValue] = index;
}
}
return resultNumberArray;
};
false 한 값
undefined
0
-0
'' -> 빈 문자열
null
NaN
false