1 | two sum | Easy
https://leetcode.com/problems/two-sum/



이상 코드
부르트 포스
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
for i in range(len(nums)):
for j in range(i+1, len(nums)):
if nums[i] + nums[j] == target:
return [i, j]
in 이용 탐색
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
for i, n in enumerate(nums):
complement = target - n
if complement in nums[i + 1:]:
return [nums.index(n), nums[i + 1:].index(complement) + (i + 1)]
첫 번째 수를 뺀 결과 키 조회
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
nums_map = {}
# exchange key and value and save as dictionary
for i, num in enumerate(nums):
nums_map[num] = i
# provide case : nums = [3, 2, 4], target = 6
for i, num in enumerate(nums):
if target - num in nums_map and i != nums_map[target - num]:
return [i, nums_map[target - num]]
조회 구조 개선 (for 하나)
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
nums_map = {}
for i, num in enumerate(nums):
if target - num in nums_map:
return [nums_map[target - num], i]
nums_map[num] = i
반응형
'Algorithm > 파이썬 알고리즘 인터뷰' 카테고리의 다른 글
| [이진 검색] 이진 검색 (0) | 2022.02.07 |
|---|---|
| [스택, 큐] 유효한 괄호 (0) | 2022.01.12 |
| [문자열 배열] 가장 긴 팰린드롬 부분 문자열 (0) | 2022.01.03 |
| [문자열 배열] 문자열 뒤집기 (0) | 2021.12.31 |
| 파이썬 알고리즘 인터뷰 | 8장 연결 리스트 (1) | 2021.11.22 |
댓글