[LeetCode] 1. Two Sum

orca·2023년 8월 31일
0

problem

목록 보기
20/28

https://leetcode.com/problems/two-sum

개요

  1. 숫자 배열이 주어진다.
  2. 합해서 target 이 되는 인덱스 두 개를 찾아라.
    • 인덱스는 무조건 한 쌍이 있다.

문제 해결 아이디어

  • nums[i] + x = target
    ➡️ x = target - nums[i] 이므로 target - nums[i] 가 배열에 있는지 확인한다.

🤨 숫자들과 짝이 되는 원소들이 있는지 확인한다.

의사 코드

  1. 배열을 순차적으로 검사한다.
  2. target - nums[i] 가 map에 존재한다. (조건)
    2-1. map에 저장된 인덱스와, i를 리턴함
  3. map에 nums[i]를 키로 인덱스를 value로 저장한다.
for(int i=0, 배열 끝까지){
	if(map에 (target-nums[i])가 있다){
    	return [i, map.get(target-nums[i])]
    }
    map.put(nums[i],i)
}
stack.pop()

결과

전체 코드 github 링크

다른 풀이

public  int[]  twoSum(int[] nums, int target) {

        Map<Integer,Integer> hashMap =  new HashMap<>();

        for(int i = 0 ; i<nums.length;i++){

            int result = target-nums[i];

            if(hashMap.containsKey(result)){

                return new int[]{hashMap.get(result),i};


            }

            hashMap.put(nums[i],i);

        }

        return new int[] {};
        
    }

나와 동일하게 문제를 풀이한 것 같다.

0개의 댓글