Публикации по теме 'recursion'


Рекурсия с точки зрения программиста.
В информатике алгоритмы в основном определяют теоретические модели как последовательности, которым нужно следовать, а последовательности - это наборы стратегий для решения проблемы, разлагающие более крупные задачи на второстепенные процессы. В этом контексте r ecursion - это метод применения функции внутри ее собственного определения. В вычислительном анализе рекурсивное поведение может выглядеть эзотерическим, трудным для проверки и отладки: этот пост направлен на перечисление..

Решайте сложные задачи с помощью рекурсии
Оптимизированное кодирование Рекурсия . Когда функция прямо или косвенно вызывает сама себя, разделяя задачу на более мелкие подмножества. По сути, рекурсия — это простой стек , в котором вы нажимаете и выталкиваете свой метод несколько раз, чтобы получить окончательный результат. Как показано ниже, методы будут помещаться в стек до тех пор, пока не будет достигнуто базовое условие . Как только базовое условие выполнено, он возвращает или извлекает метод из стека. Эта..

Один день, еще один LeetCode — 7/29
/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */ int max(int a, int b){ int m = a>b ? a:b; return m; } int maxDepth(struct TreeNode* root){ if(!root) return 0; if(!root->left && !root->right) return 1; else if(!root->left) return (1 + maxDepth(root->right)); else if(!root->right) return (1 + maxDepth(root->left)); else return (1 +..

Связанный список палиндромов
В этой статье мы рассмотрим различные подходы к проверке, является ли данный связанный список палиндромом или нет. Постановка задачи: Учитывая head односвязного списка, вернуть true , если это палиндром, или false в противном случае . Подход 1. Используйте дополнительный массив Пройдите по связанному списку и скопируйте каждый элемент в массив. Используйте два указателя, один из которых начинается с начала массива, а другой — с конца, и сравнивайте значения в каждой..

Аннотация хвостовой рекурсии Scala
Рекурсия достаточно сложна, используйте аннотацию хвостовой рекурсии Scala поддерживает как объектно-ориентированное программирование, так и функциональное программирование, которое охватывает решения, использующие рекурсию вместо итерации. Одним из улучшений производительности, реализованных в Scala, является возможность аннотировать функции в виде хвостовой рекурсии. Scala должна реализовать это, поскольку JVM не поддерживает предварительную оптимизацию рекурсивных функций.

Возврат всех комбинаций букв, которые могут быть сформированы с помощью 2 цифр с клавиатуры телефона
Backtracking II — комбинации букв с использованием двух цифр с клавиатуры телефона с помощью JavaScript Этот пост можно считать продолжением предыдущего о рекурсивном возврате. Я был рад сделать это один за другим, чтобы укрепить эту концепцию. В Leetcode #17 — Буквенные комбинации номера телефона нашим входом является строка, содержащая до 4 цифр. Пойдем с «23» Используя символы на клавиатуре телефона, цель состоит в том, чтобы вернуть все возможные комбинации букв, которые..

Разрушение базовой рекурсии в JavaScript
Или, как я люблю это называть, кодирование дежавю. О, рекурсия - вы думаете, что знаете это, пока ваша рекурсивная функция не заставит ваш компьютер зависать, раз за разом взрывая стек. Но рекурсия - удобный инструмент, поэтому давайте рассмотрим теорию. В любом случае, что такое рекурсия? Рекурсия - это просто, когда функция вызывает себя внутри себя. Например, вы можете получить сумму чисел от x до y . Вы можете легко написать эту функцию, используя цикл - фактически, любая..