[LeetCode] 1. Two Sum

Chobby·2024년 8월 1일
1

LeetCode

목록 보기
38/194

인덱스를 정의해야하므로, 투 포인터의 합 계산 방법은 불가하며

해시맵을 사용하면 O(n)의 시간 복잡도로 해결 가능하다.

function twoSum(nums: number[], target: number): number[] {
    const numMap: { [key: number]: number } = {};
    
    for(let i = 0; i < nums.length; i++) {
        // 목표값 - 현재값 = 원하는 값
        const complement = target - nums[i];
        // 해시맵에 원하는 값이 있는지 검사
        if (complement in numMap) {
            return [numMap[complement], i];
        }
        // 해시맵에 저장
        numMap[nums[i]] = i;
    }
    
    throw new Error("No solution found");
}
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글