Logo video2dn
  • Сохранить видео с ютуба
  • Категории
    • Музыка
    • Кино и Анимация
    • Автомобили
    • Животные
    • Спорт
    • Путешествия
    • Игры
    • Люди и Блоги
    • Юмор
    • Развлечения
    • Новости и Политика
    • Howto и Стиль
    • Diy своими руками
    • Образование
    • Наука и Технологии
    • Некоммерческие Организации
  • О сайте

Скачать или смотреть The Recursive Staircase - Top Down & Bottom Up Dynamic Programming ("Climbing Stairs" on LeetCode)

  • Back To Back SWE
  • 2019-01-18
  • 78563
The Recursive Staircase - Top Down & Bottom Up Dynamic Programming ("Climbing Stairs" on LeetCode)
climbing stairs problemthe recursive staircase problemdynamic programmingrecursionBack To Back SWESoftware Engineeringcomputer scienceprogrammingprogramming interviewscoding interviewscoding questionsalgorithmsalgorithmic thinkingGoogle internshipFacebook internshipsoftware engineering internshipswe internshipbig n companies
  • ok logo

Скачать The Recursive Staircase - Top Down & Bottom Up Dynamic Programming ("Climbing Stairs" on LeetCode) бесплатно в качестве 4к (2к / 1080p)

У нас вы можете скачать бесплатно The Recursive Staircase - Top Down & Bottom Up Dynamic Programming ("Climbing Stairs" on LeetCode) или посмотреть видео с ютуба в максимальном доступном качестве.

Для скачивания выберите вариант из формы ниже:

  • Информация по загрузке:

Cкачать музыку The Recursive Staircase - Top Down & Bottom Up Dynamic Programming ("Climbing Stairs" on LeetCode) бесплатно в формате MP3:

Если иконки загрузки не отобразились, ПОЖАЛУЙСТА, НАЖМИТЕ ЗДЕСЬ или обновите страницу
Если у вас возникли трудности с загрузкой, пожалуйста, свяжитесь с нами по контактам, указанным в нижней части страницы.
Спасибо за использование сервиса video2dn.com

Описание к видео The Recursive Staircase - Top Down & Bottom Up Dynamic Programming ("Climbing Stairs" on LeetCode)

Free 5-Day Mini-Course: https://backtobackswe.com
Try Our Full Platform: https://backtobackswe.com/pricing
📹 Intuitive Video Explanations
🏃 Run Code As You Learn
💾 Save Progress
❓New Unseen Questions
🔎 Get All Solutions


Question: You are climbing a staircase. It takes n steps to reach to the top. Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top? (n is always a positive integer).

This is a classic problem. Let us tackle it thoroughly, there are many ways to do this that form the basis for how we do other problems bottom up with a DP table or top down with memoization.

The key with a problem like this is to instantly recognize that this turns into a series of subproblems, it is very similar to the Fibonacci sequence calculations.


Approach 1 (Top Down Recursion w/o Memoization)

Example:
n = 4

Let f(n) be the number of ways to climb n steps if we can take 1 or 2 steps.

f(4) = f(3) + f(2)
f(3) = f(2) + f(1)
f(2) = f(1) + f(0)

Base case: f(0) = 1 and f(any negative number) = 0

Notice that we are resolving subproblems that we already have an answer to and hence we are wasting time.

Complexities

Time: O( 2 ^ n )
Each recursive call can spawn 2 more calls, depth of the recursion tree is n. This is a loose bound, a tighter one is around O( 1.62 ^ n )

Space: O( n )
Call stack max depth. Max depth of the recursion tree goes n calls deep.


Approach 2 (Use Memoization On Top Down)

Memoization: An optimization technique used primarily to speed up computer programs by storing the results of expensive function calls and returning the cached result when the same inputs occur again.

Dynamic programming is all about storing the answers to previous sub-problems to speed up our runtimes by avoiding repeating work that has already been done.

Complexities

Time: O( n )
We cancel out many of the repeated calls that we might have made leading to us to have a linear time complexity.

Space: O( n )
Call stack max depth. And we will still have the dp table.


Approach 3 (Dynamic Programming Array)

DP is all about caching the answers to previous work and using it in current work.

dp[n] denotes the number of ways to climb n steps if we can take 1 or 2 steps.

dp[n] = dp[n - 2] + dp[n - 1]

The answer to n is the sum of the answer between two things:
our last step to n is 2 long
our last step to n is 1 long

Base Cases: dp[1] = 1 and dp[2] = 2

Complexities

Time: O( n )
A for loop making n - 2 iterations

Space: O( n )
We will be holding n + 1 entries in a dp array


Approach 4 (Fibonacci Number)

We notice that this is just the Fibonacci series. We can just use local variables to keep track of the items 1 and 2 behind where we stand.

Complexities

Time: O( n )
Still solve up to n subproblems.

Space: O( 1 )
No more dp array, we just use constant local variables


All other approaches are esoteric and are not practical in an interview, these include:

Using Binets Method & matrix multiplication
Using the mathematical, non-recursive, version of the Fibonacci Formula

++++++++++++++++++++++++++++++++++++++++++++++++++

HackerRank:    / @hackerrankofficial  

Tuschar Roy:    / tusharroy2525  

GeeksForGeeks:    / @geeksforgeeksvideos  

Jarvis Johnson:    / vsympathyv  

Success In Tech:    / @successintech  

Комментарии

Информация по комментариям в разработке

Похожие видео

  • О нас
  • Контакты
  • Отказ от ответственности - Disclaimer
  • Условия использования сайта - TOS
  • Политика конфиденциальности

video2dn Copyright © 2023 - 2025

Контакты для правообладателей [email protected]