http, polling, uqeue
слепые и т.д.
дата, уровень, модуль
fetch забирает, а pull забирает и мержит
git checkout -b branch_name
RUN
То, что в этой команде, запустится при старте контейнера
Если у нас django rest framework, то в сериалайзере
Для вычисления следующего значения только в момент вызова, а не для просчета всех значений предварительно.
a = [1, 3, 4]
b = [1, 4, 5]
c = [2, 7, 1]
n = 4
def check(a, b, c, n):
# реализовать функцию check, которая получает 3 массива a, b, c и число n
# возвращает True если есть хоть одна комбинация, где сумма чисел по одному числу каждом массиве равна n
# в данном примере должно быть True, т.к. a[0]+b[0]+c[0]=1+1+2=4
return True or False
Реализация:
def check(a, b, c, n):
for i_a in a:
for i_b in b:
for i_c in c:
if i_a + i_b + i_c == n:
return True
return False
print(check(a, b, c, n))
Какая алгоритмическая сложность данной задачи? o(n^3)
Как можно ускорить алгоритм?
def check(a, b, c, n):
for i_a in a:
if i_a > n:
continue
for i_b in b:
if i_a + i_b > n:
continue
for i_c in c:
if i_a + i_b + i_c == n:
return True
return False
print(check(a, b, c, n))
Как можно снизить алгоритмическую сложность?
def check(a, b, c, n):
c_set = set(c)
for i_a in a:
for i_b in b:
if (n - i_a - i_b) in c_set:
return True
return False
print(check(a, b, c, n))
postgresql CP, mongodbAP
observer
Если в postgresql есть таблица с разными полями и по этим полям есть отдельные индексы, как будет выполняться фильтрация сразу по нескольким полям?
индексы + битовая маска
HashTable + (B-Tree or OpenAddressing?).
В лучшем случае HashTable без коллизий, тогда Search/Insertion/Deletion Θ(1).
Когда HashTable попадает на коллизию, используется (B-Tree or OpenAddressing?), тогда Search/Insertion/Deletion Θ(log(n)).
https://www.bigocheatsheet.com/
def log_me(func):
def wrapper(*args, **kwargs):
value = func(*args, **kwargs)
values = [str(a) for a in args]
values += [f"{k}={kwargs[k]}" for k in kwargs]
values = ', '.join(values)
print(f"{func.__name__}({values}) = {value}")
return wrapper
@log_me
def foo(a, b, c=2):
return a + b + c
foo(1, b=2, c=3)
# output: foo(1, b=2, c=3) = 6