1. Two Sum

양갱·2025년 11월 3일

leetcode

목록 보기
14/14
post-thumbnail

Intuition

문제 이해

  • nums: 배열
  • target: 정수
    nums에 들어있는 정수들 중 두 개를 골랐을 때, 두 개의 합이 target이 되는 수를 구하시오.
    단, 반환하는 정수 두 개의 순서는 상관없음
  • 반환값에 대해: nums[]의 index를 넣어야 함.

Approach

문제 접근

일단 지금 당장 생각나는 거
1. numsHashMap에 넣는다. -> O(n)
2. nums를 돌면서 HashMaptarget으로 충족되는 게 있는지 확인한다. -> O(n)
=> 시간복잡도 O(n), 공간복잡도 O(n)

  • 문제점: HashMap의 경우, 공간복잡도를 O(n) 추가적으로 사용함.
  • 새로운 접근방식
  1. 아 생각안나

문제 풀이

  • 사용 알고리즘: 지금은 모르겠고 일단 나중에 추가함

문제 발생

Case1 for 문 안 돌음

(3, 0), (2, 1), (4, 2)

Complexity

  • Time complexity:O(n)

  • Space complexity:O(n)

Code

class Solution {
    public int[] twoSum(int[] nums, int target) {
        Map<Integer, Integer> map = new HashMap<>();
        int[] ans = new int[2];
        for (int i=0; i<nums.length; i++){
            map.put(nums[i], i);
        }

        for (int i=0; i<nums.length; i++){
            if (map.containsKey(target - nums[i])){
                if (i != map.get(target - nums[i])){
                    ans[0] = i;
                    ans[1] = map.get(target - nums[i]);
                    return ans;
                }

            }
        }
        return ans;
    }
}
profile
일기장처럼 기록하는 용도

0개의 댓글