def DictSolution(nums: list[int], target: int) -> list[int]:
    """
    Given an array of integers `nums` and an integer `target`, return indices
    of the two numbers such that they add up to `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.
    """

    storage = {}

    for index, num in enumerate(nums):
        diff = target - num

        if diff in storage:
            return [index, storage[diff]]

        storage[num] = index

    return []