ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [LeetCode/JAVA] 1. Two Sum
    ETC/Algorithm 2023. 8. 31. 22:51

    문제

    배열 nums가 주어지는데 이 요소들을 중복하지 않고 한 번만 사용해서 target이라는 값을 만드는 문제이다.

    풀이

    해쉬맵을 사용해서 target의 값과 nums[i]의 값의 차이를 조회해서 만약 존재한다면 그 값이 정답이다. 하지만 해쉬맵이 초기에는 비어있으므로 존재하지 않다면 put을 통해 해쉬맵에 내용을 저장해주면서 반복하다보면 O(N)만에 정답을 구할 수 있게 된다.

    코드

    class Solution {
        public int[] twoSum(int[] nums, int target) {
            HashMap<Integer, Integer> hmap = new HashMap<>();
            for (int i = 0; i < nums.length; i++) {
                if (hmap.containsKey(target - nums[i])){
                    return new int[] {hmap.get(target - nums[i]), i};
                }
                hmap.put(nums[i], i);
            }
            return new int[] {};
        }
    }

    댓글

Designed by black7375.