Given an array of integers nums and an integer target, return the indices of the two numbers such that they add up to the target.

You may assume that each input would have exactly one solution, and you may not use the same element twice.

You can return the answer in any order.

Function Signature:

from typing import List

def two_sum(nums: List[int], target: int) -> List[int]:
    """
    Return the indices of the two numbers in the array that add up to the target.

    Parameters:
    - nums: List of integers.
    - target: Target sum.

    Returns:
    - List[int]: Indices of the two numbers.
    """
    # Your code here

Example:

# Input: nums = [2, 7, 11, 15], target = 9
# Output: [0, 1]

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

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

Note:

  • Each input would have exactly one solution.
  • You may not use the same element twice.
  • You can return the answer in any order.

Instructions:

  • Write the two_sum function to solve the problem.
  • Implement your solution in Python.
  • Provide clear comments in your code.
  • Discuss the time and space complexity of your solution.

As always, we’ll share our solution to this problem tomorrow. Stay tuned 😊