Leetcode 2합 문제 | DSA | 파이썬

Leetcode Two Sum 문제 링크: https://leetcode.com/problems/two-sum/

무차별 접근 방식과 최적 접근 방식을 모두 설명하려고 노력했습니다. 쉬운 2합 문제 풀이. DSA 라운드나 SDE 인터뷰를 준비하고 있다면 이것은 당신을 위한 것입니다. 질문이 있으시면 언제든지 댓글을 남겨주세요.

문제



정수 nums의 배열과 정수 target이 주어지면 두 숫자의 인덱스를 반환하여 합계가 target이 되도록 합니다.

각 입력에 정확히 하나의 솔루션이 있다고 가정할 수 있으며 동일한 요소를 두 번 사용할 수 없습니다.

어떤 순서로든 답변을 반환할 수 있습니다.

Example 1:
Input: nums = [2,7,11,15], target = 9
Output: [0,1]
Explanation: Because nums[0] + nums[1] == 9, we return [0, 1].


Example 2:
Input: nums = [3,2,4], target = 6
Output: [1,2]

Example 3:
Input: nums = [3,3], target = 6
Output: [0,1]



솔루션 1 : [무차별 대입 방법]

from typing import List
   def twoSum(self, nums: List[int], target: int) -> List[int]:
        for i in range(len(nums)):
            for j in range(i, len(nums)):
                if i!=j:
                    if nums[i] + nums[j] == target:
                        return [i, j]


솔루션 2 : [최적 솔루션]

from typing import List
 def twoSum(list: List[int], target: int) -> List[int]:
    if len(list) <= 1:
        return 'Please pass an array with atleast two elements'
    hashTable = {}
    for i in range(len(list)):
        complement =  target  - list[i]
        if complement in hashTable:
            return [list.index(complement), i]
        hashTable[list[i]] = list[i]


해결책을 설명하는 비디오를 만들었습니다.

.

좋은 웹페이지 즐겨찾기