Слово дня — мемоизация.
Базированно: это метод оптимизации, который сохраняет результаты вычислений в кэше и извлекает эту же информацию из кэша, когда потребуется, вместо того, чтобы вычислять всё заново.
var memo = map[int]int{}
func fib(n int) int {
if n < 2 {
return n
}
if val, ok := memo[n]; ok {
return val
}
memo[n] = fib(n-1) + fib(n-2)
return memo[n]
}Чем дольше я прохожу курс от яндекса, тем мне больше кажется, что алгосы всё-таки нужны и полезны.
Столкнулась сегодня с наглядным примером, почему руны важны. Решала задачку, где нужно написать функцию, которая определяет, является ли строка палиндромом.
На английских строках всё ок, на русских сравнения символов некорректны. Пришлось преобразовывать строку в последовательность рун — заработало сразу.
Мне прям нравится, какое горячее чувство ты ощущаешь, когда смотришь в код и понимаешь, что он не работает, хотя по логике должен. Даже не знаю, как описать подробнее — смесь азарта, ярости и веселья. Скажите, что я не одна такая😐
А ещё я актуализировала роадмап по Go! Приятно всё-таки, когда видишь прогресс.
Итого:
Роадмап бэкенда: 5% — 5%
Роадмап Go: 18% — 25%
Оценка за день: 5/5