Учитывая массив целых чисел nums и целое число target, верните индексы двух чисел так, чтобы в сумме они составляли target.

Вы можете предположить, что каждый вход будет иметь ровно одно решение, и вы не можете использовать один и тот же элемент дважды.

Вы можете вернуть ответ в любом порядке.

def two_sum(nums, target):
    # Create an empty dictionary
    num_map = {}
    # Iterate through the array
    for i, num in enumerate(nums):
        # Check if the target minus the current number is in the dictionary
        if target - num in num_map:
            # If it is, return the indices of the two numbers
            return [num_map[target - num], i]
        # Otherwise, add the current number and its index to the dictionary
        num_map[num] = i
    # If no two numbers add up to the target, return an empty list
    return []

# Example usage
nums = [2, 7, 11, 15]
target = 9
print(two_sum(nums, target)) # Output: [0, 1]

В этом решении используется словарь в python для хранения элементов массива в виде ключей и их индексов в виде значений. Затем он перебирает массив, проверяя, есть ли в хеш-таблице дополнение текущего элемента (цель — текущий элемент). Если это так, он возвращает индексы двух элементов. Если никакие два элемента не совпадают с целью, он возвращает пустой список. Это решение имеет временную сложность O(n) и пространственную сложность O(n).

Этот вопрос чаще всего задают в таких компаниях, как Google, Microsoft и Amazon.

Вы можете следить за следующими репозиториями Github, чтобы узнать о других проблемах, которые помогут вам при подготовке к интервью. Удачного кодирования :)