wo Sum - JavaScript
1187 단어 Hash TablearrayHash Table
Two Sum
0. 문제 해결 방법
총 2가지의 해결 방법이 있다.
- Array를 사용한 완전 탐색
- Hash Table을 사용하여 한번에 탐색하는 방식
1. Array을 사용하여 완전 탐색으로 해결하는 방법
- 시간 복잡도 : O(n^2) => O(n) loop를 두 번 수행한다.
- 공간 복잡도 : O(1) => input array를 적재할 공간이 필요하지 않다.
var twoSum = function(nums, target) {
for (let i = 0; i < nums.length; i++) {
for (let j = i + 1; j < nums.length; j++) {
if (target - nums[i] === nums[j]) {
return [i, j];
}
}
}
}
2. Hash Table을 사용하는 방식
- 시간 복잡도 : O(n) => O(1)인 해쉬맵을 사용하여 loop를 1회 수행한다.
- 공간 복잡도 : O(n) => value를 적재할 별도 공간(map)을 필요로 한다.
var twoSum = function(nums, target) {
const map = new Map();
for (let i = 0; i < nums.length; i++) {
const diff = target - nums[i]; //찾는 값
if ( map.has(diff) ) {
// map에서 이전에 넣어둔 키값 중에 diff가 있는지 확인한 후 반환
return [map.get(diff), i];
}
map.set(nums[i], i); // [key:number, value:index]
}
}
Author And Source
이 문제에 관하여(wo Sum - JavaScript), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yejink/Two-Sum-Javascript저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)