Заучивай, не понимая
Понимание приходит после запоминания, а не до.
У меня 79 сабмишенов на одну задачу про обход дерева.
И почти все без понимания. Я не понимал, как работает рекурсия и где живёт состояние.
Я просто выучил шаблон обхода в глубину. Пять строк.
def dfs(node):
if node is None: return
print(node.val)
dfs(node.left)
dfs(node.right)
Знал одно: этот кусок обходит дерево. Как цикл обходит массив. Под капот к циклу я же не лезу?
У меня щёлкнуло через несколько недель применения заученного шаблона.
В одной задаче заученный кусок пришлось чуть изменить — и стало видно, почему он устроен именно так.
БЭМ! На, с*ка!!
Пониманию нужно за что-то зацепиться. Заученный шаблон — опора.
Поэтому учи наизусть и шаблоны, и классические задачи целиком. Как аккорды в песнях (Границы ключ …)
Например возьми рекурсивный шаблон поиска в глубину (dfs). Выучи. Три дня подряд пиши его по памяти и применяй на одной задаче.
Гарантирую: преисполнишься вечным-бесконечным раньше, чем думаешь.
А не преисполнишься — у тебя всё равно будет рабочий шаблон.
Выучи. Потом поймёшь. 🐆
#польза