mirror of
https://github.com/prdlk/leetcode.git
synced 2026-11-02 21:22:43 +00:00
48 lines
1.1 KiB
Plaintext
48 lines
1.1 KiB
Plaintext
---
|
|
title: '1. Two Sum'
|
|
description: You are given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target
|
|
sidebar:
|
|
label: 'Two Sum'
|
|
badge: 'Easy'
|
|
---
|
|
|
|
<Badge variant="accent">Hash Table</Badge>
|
|
|
|
::::warning
|
|
Can you come up with an algorithm that is less than O(n^2) time complexity?
|
|
::::
|
|
|
|
### 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]`
|
|
|
|
### Constraints:
|
|
|
|
- `2 <= nums.length <= 10^4`
|
|
- `-10^9 <= nums[i] <= 10^9`
|
|
- `-10^9 <= target <= 10^9`
|
|
- Only one valid answer exists.
|
|
|
|
## Solution
|
|
|
|
```py
|
|
class Solution:
|
|
def twoSum(self, nums: List[int], target: int) -> List[int]:
|
|
seen = {}
|
|
for i, num in enumerate(nums):
|
|
complement = target - num
|
|
if complement in seen:
|
|
return [seen[complement], i]
|
|
seen[num] = i
|
|
return []
|
|
```
|