Публикации по теме '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 . Вы можете легко написать эту функцию, используя цикл - фактически, любая..