Warning: preg_grep(): Compilation failed: quantifier does not follow a repeatable item at offset 142 in /var/www/tg-me/post.php on line 75 Библиотека собеса по Data Science | вопросы с собеседований | Telegram Webview: ds_interview_lib/192 -
Вам даны массив и число N. Нужно вернуть True, если в массиве есть такие два числа A и B, что их сумма A + B даёт N. В противном случае нужно вернуть False. Примеры: [1, 2, 3, 4], 5 ⇒ True [3, 4, 6], 6 ⇒False
✔️Можно, конечно, применить брутфорс, но есть решение получше. Его сложность составит O(n). Вот как оно выглядит:
def two_sum(numbers, target): index = {num: i for (i, num) in enumerate(numbers)}
n = len(numbers)
for i in range(n): a = numbers[i] b = target - a
if b in index: j = index[b] if i != j: return True
return False
Здесь сначала создаётся словарь index, который хранит числа из массива в качестве ключей и их индексы в массиве в качестве значений. Затем идёт перебор элементов массива. Для каждого элемента a вычисляется число b, которое необходимо для достижения суммы target. Далее проверяется, содержится ли b в словаре index. Если да, то дополнительно проверяется, не совпадает ли индекс текущего элемента a с индексом элемента b. Если индексы различны, это означает, что была найдена пара чисел, сумма которых равна target.
Вам даны массив и число N. Нужно вернуть True, если в массиве есть такие два числа A и B, что их сумма A + B даёт N. В противном случае нужно вернуть False. Примеры: [1, 2, 3, 4], 5 ⇒ True [3, 4, 6], 6 ⇒False
✔️Можно, конечно, применить брутфорс, но есть решение получше. Его сложность составит O(n). Вот как оно выглядит:
def two_sum(numbers, target): index = {num: i for (i, num) in enumerate(numbers)}
n = len(numbers)
for i in range(n): a = numbers[i] b = target - a
if b in index: j = index[b] if i != j: return True
return False
Здесь сначала создаётся словарь index, который хранит числа из массива в качестве ключей и их индексы в массиве в качестве значений. Затем идёт перебор элементов массива. Для каждого элемента a вычисляется число b, которое необходимо для достижения суммы target. Далее проверяется, содержится ли b в словаре index. Если да, то дополнительно проверяется, не совпадает ли индекс текущего элемента a с индексом элемента b. Если индексы различны, это означает, что была найдена пара чисел, сумма которых равна target.
#алгоритмы #python
BY Библиотека собеса по Data Science | вопросы с собеседований
Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283
A Telegram spokesman declined to comment on the bond issue or the amount of the debt the company has due. The spokesman said Telegram’s equipment and bandwidth costs are growing because it has consistently posted more than 40% year-to-year growth in users.
However, analysts are positive on the stock now. “We have seen a huge downside movement in the stock due to the central electricity regulatory commission’s (CERC) order that seems to be negative from 2014-15 onwards but we cannot take a linear negative view on the stock and further downside movement on the stock is unlikely. Currently stock is underpriced. Investors can bet on it for a longer horizon," said Vivek Gupta, director research at CapitalVia Global Research.
Библиотека собеса по Data Science | вопросы с собеседований from us