DP 2. Climbing Stairs | Learn How to Write 1D Recurrence Relations

Поделиться
HTML-код
  • Опубликовано: 20 авг 2024

Комментарии • 972

  • @utkarshyadav3401
    @utkarshyadav3401 2 года назад +252

    You say consistency !!! I hear Striver !!!! 😊😊😊 Man you are too good !!!!

  • @MadhavGupta-fi2tu
    @MadhavGupta-fi2tu Год назад +64

    Points to remember:
    Step1. Identify a DP Problem.
    Step2. To solve the problem after identification.
    1. Try to represent the given problem in terms of index.
    2. Do all possible operations on that index according to the problem statement.
    3. To count all possible ways - sum of all stuff.
    To find minimum/maximum - Take Minimum/maximum of all stuff.
    Understood 🔥🔥🔥

    • @niteshsaxena1066
      @niteshsaxena1066 3 месяца назад

      These steps will work well on leetcode/GFG but not on codeforces
      For CP, you need to watch priyansh video

  • @user-bo9br3bo4y
    @user-bo9br3bo4y 9 месяцев назад +30

    I finished my engineering and now I m working , came back to listen to the song that gets played for few seconds in last . Good old days.

  • @nikhilgupta2569
    @nikhilgupta2569 Год назад +72

    Great work Striver. Just couple of observations since f(n) denotes no of ways to reach nth stair from step 0. It implies f(0) should be 0(you don't have to move at all, you are already at your destination), f(1)=1(because only one step of single jump needed) and f(2) = 2 because in this case either two times a 1-step can be taken or a single 2-step works. So closely this pattern doesn't resemble fibonacci till index 2, because f(2) is not a sum of f(1) and f(0), rather they are adding upto 1. So my logic would be:
    // JS Snippet
    const climbStairs = function(n) {
    const recursion = (i) => {
    if(i

    • @vamshisamsetty186
      @vamshisamsetty186 Год назад +3

      Was thinking the same!!

    • @MP-eq8fx
      @MP-eq8fx Год назад

      Thank you Nikhil. You explained it very easily. So I wrote it this way:
      //JS Snippet
      function numOfStairs(n) {
      if (n

    • @sahillodha6084
      @sahillodha6084 Год назад +4

      Firstly I thought that at f(0) he can't move and over there return 1 indicates that even not moving can be considered as a way but it will be same for entire problem and make it unsolvable but it isn't so you have cleared thank you

    • @aasifali9139
      @aasifali9139 Год назад

      I was thinking the same.. that why is there 1 ways to reach stair 0?

    • @TIMEe..
      @TIMEe.. Год назад +1

      Your code will fail for 3

  • @keshav_k_0793
    @keshav_k_0793 Год назад +17

    1. Try to represent any problems in terms of index
    2. Do all possible stuffs on that index, according to the problem statement
    3. Sum of all stuffs ->count all the ways , min(of all stuffs) -> Find min

  • @TravelTracksByDebo
    @TravelTracksByDebo 2 года назад +14

    Finally after 7 month because of you bhaiya got to know the intuition behind aolving a DP problem and the patterns too.....fully understood

  • @utkarshaggarwal1631
    @utkarshaggarwal1631 2 года назад +37

    I understood this as : to reach the nth stair, you find out the ways to reach the (n-1)th stair (from where you take 1 step to reach nth stair) and the ways to reach the (n-2)th stair (from where you take 2 steps to reach the nth stair), and sum them to get total no. of ways. Is my understanding correct?

  • @tanishamajumdar3552
    @tanishamajumdar3552 Год назад +5

    points to remember
    any problem should be broken down to a recursive function.
    1. try indexing
    2.try writing all possibilities using indexes
    3.for finding min /max => count the no. of ways(sum of all f(n))=>min/max(all posssible f(n))

  • @GurpreetSingh-ou4wj
    @GurpreetSingh-ou4wj 2 года назад +7

    Understood! earlier was doing it in another way, but today i got a new way of thinking i.e. if we are on nth idx then we have jumped from n-1th and n-2th 🙃

  • @syedakhudsiyatarannum5695
    @syedakhudsiyatarannum5695 Год назад +5

    understood
    solved the problem on my own just after reading the question thanks to your recursion playlist and 1st video on dp

  • @rajneeshmishra6969
    @rajneeshmishra6969 2 дня назад

    Understood! Loved how you simplified the recurrence relations thing!

  • @alienx2367
    @alienx2367 2 года назад +44

    Just a suggestion you can cover whole screen by the black board, just a small rectangule for your face at left or right bottom

    • @takeUforward
      @takeUforward  2 года назад +37

      The iPad screen reso is small. So if I elongate it to the whole screen, it stretches and the colors go off.

    • @rabindrakumar949
      @rabindrakumar949 2 года назад +8

      Face is not required.

    • @takeUforward
      @takeUforward  2 года назад +71

      Padhai kar lo, face rhe na rhe usse kya h. 😂

    • @ManishKumar-qx1kh
      @ManishKumar-qx1kh 2 года назад +10

      @@rabindrakumar949 why r u focusing on the face, just get the knowledge he is sharing for free.

    • @rabindrakumar949
      @rabindrakumar949 2 года назад +3

      @@ManishKumar-qx1kh I am not able to focus most of the time on actual content due to the face. In Aditya Verma video I like the fully content screen. And about free content, yes we get the content as free and do you think someone in this world will work to provide such valuable content without getting paid. I guess some indirect money must motivating them to provide such incredible content.

  • @manantyagi6905
    @manantyagi6905 Год назад +3

    Bestest stuff of all the cases of tutorials on youtube

  • @stith_pragya
    @stith_pragya 8 месяцев назад +5

    Understood, Thank You So Much for this wonderful video...🙏🏻🙏🏻🙏🏻🙏🏻🙏🏻🙏🏻

  • @VivekJaviya
    @VivekJaviya 2 года назад +152

    Leetcode daily problem + Codechef daily problem + GFG daily Problem + Striver Daily dp problem = :)

    • @sakthi6023
      @sakthi6023 Год назад +11

      =Google

    • @kingmaker9082
      @kingmaker9082 Год назад +8

      So, ur planning to become SDE in Meta 🤙

    • @VivekJaviya
      @VivekJaviya Год назад

      @@kingmaker9082 Meta to nhi but USA ke startup or MNC se offer to mil gaye upar ki chijo se!

    • @kingmaker9082
      @kingmaker9082 Год назад +1

      @@VivekJaviya bro iam also preparing in the same pattern nd I'm currently studying mca 1st year. Iam looking for ppo's in mncs like Goldmansachs, Amazon, uber etc...could you plz say ur linkedin id?

    • @Harshanandita
      @Harshanandita Год назад +3

      Are you saying practicing every day or are you talking about the problem which is given everyday on LeetCode and GfG?

  • @shuvbhowmickbestin
    @shuvbhowmickbestin Год назад +5

    Hi striver, if you're reading this then I'd request you to put this video in the shortened version of this playlist as well since here you're teaching how to encounter problems related to 1D array which is necessary to understand to be able to solve 1D problems on DP.

  • @yt_ac
    @yt_ac 9 месяцев назад +3

    Day - 1 : understood the three points clearly

  • @sukhpreetsingh5200
    @sukhpreetsingh5200 Год назад +7

    Understood! I done this question myself thanks a lot to u for this amazing series

  • @poisegaming2448
    @poisegaming2448 Год назад +1

    class Solution {
    public int climbStairs(int n) {
    int prev2 = 1;
    int prev1 = 1;
    for(int i =2;i

  • @lifehustlers164
    @lifehustlers164 5 месяцев назад +4

    3/57 done!!! Understood!

  • @vishalchoudhary5918
    @vishalchoudhary5918 2 года назад +3

    I struggled hard to get its recursive bit u made it so much easy

  • @atharvakalele37
    @atharvakalele37 2 года назад +12

    Do I just need to solve these questions first before attempting anything similar on leetcode or do I need to do both leetcode and your problems both on parallel....btw you are the best teacher I ever learned from...keep on making these videos man...and education would become completely free soon!

  • @dharmeshpoladiya9047
    @dharmeshpoladiya9047 2 года назад +5

    Understood 💯💯 Great Explanation. Thank you very much for all you efforts🔥🔥

  • @RAHULKUMAR-sx8ui
    @RAHULKUMAR-sx8ui 2 года назад +5

    if logic is magic then you are a great magician appreciate it sir ❤️

  • @nimsguy
    @nimsguy Год назад +7

    Thanks for the explanation and whole series!. Shouldn't base case be if(index === 0) return 0 ?. If this is right, then when n=3, we will have only 2 possible ways to reach step 3 which is incorrect ?.

    • @karansumbly1254
      @karansumbly1254 Год назад +1

      We are not counting the number of steps but the number of ways. So as soon as the function hits 0, we can say that we have found a new way and hence return 1.

  • @gurveer1527
    @gurveer1527 2 года назад +5

    int countDistinctWays(int nStairs) {
    //DP Tabulation solution

    int mod = 1000000007;

    vectorDP(nStairs+2, -1);

    //Initial Steps
    DP[0] = 1;
    DP[1] = 1;

    for(int i= 2; i

  • @ganapathyg981
    @ganapathyg981 2 года назад +2

    Thanks for explaining in English.. love from Tamilnadu 😎

  • @programmertik2046
    @programmertik2046 2 года назад +2

    int ways(int i,int n, vector&dp){
    if(dp[i]!=-1){
    return dp[i];
    }
    if(i==n){
    return 1;
    }
    if(i>n){
    return 0;

    }



    return dp[i]=ways(i+1,n,dp)+ways(i+2,n,dp);
    }
    Why this gives heap buffer exceeded and why we go from n to 0
    when we go can go from 0 to n

  • @lakshmichandhana
    @lakshmichandhana Год назад +4

    Amazing Lectures ,learnt a lot .Great initiative.

  • @sakshisinghal1669
    @sakshisinghal1669 2 года назад +6

    I am unable to understand why we need 1 to jump to same stair that is from 0->0 (base case)? According to me it should be zero. Correct me if I am wrong.

    • @sandeepdeepu5052
      @sandeepdeepu5052 2 года назад +10

      I too didn't understood in the beginning but after sometime I figured out that = see you are coming from n to reach 0 which means there is way from n to our destination '0' so you return 1 saying that there is a possible way from n to reach 0 so it is returning true. You should not think like from 0 to 0 there is no way then why i am returning 1. You have think from the given "n' perspective. because 0 is the last index to get on so if we get to the last index we found out a way from n. So when we reach to 0 index we are saying to n that " hello n there is a possible path from u".

    • @kaushikmahanta6463
      @kaushikmahanta6463 Год назад +1

      @@sandeepdeepu5052 thank u

    • @sandeepdeepu5052
      @sandeepdeepu5052 Год назад

      @@kaushikmahanta6463 felt happy that you understood my explanation.

  • @Sanya-ic8gr
    @Sanya-ic8gr 2 месяца назад +1

    UNDERSTOOD! Thank you striver!!

  • @insofcury
    @insofcury 2 года назад +2

    Represent the problem in index format
    Do all possible operations on the index
    do count or find min/max
    Understood!

  • @newtonsir6752
    @newtonsir6752 2 года назад +6

    I'm ur new subscribers.
    Thank u for all the efforts and please continue to do so.
    Ur lectures are great.
    Please explain me the base case :
    Why return 1 ?

    • @dhrubajyoti3774
      @dhrubajyoti3774 2 года назад +1

      Bcoz there is only one way to reach step 1 from step 0

    • @vikasbagri1225
      @vikasbagri1225 2 года назад +6

      you can think (n == 0) as you have ultimately reached to your destination i.e. at the nth step and no need to take any more step and thus you can conclude that you have found one of the way to reach the nth stair and hence return 1 indicating that hey I have found one of the possible way to reach the target and you can actually increment the total count of possible ways to reach the nth stair
      I hope it helps

  • @rashmikareddy3259
    @rashmikareddy3259 2 года назад +3

    Learning to be consistent from you sir.. UNDERSTOOD

  • @aryankumar87771
    @aryankumar87771 Год назад +2

    Python Most optimized solution =>
    def climbStairs(self, n: int) -> int:
    prev = 1
    prev2 = 1
    res = 1
    for x in range(2,n+1):
    res = prev + prev2
    prev2 = prev
    prev = res
    return res

  • @codecrafts5263
    @codecrafts5263 3 месяца назад

    Tabulated solution:
    function f(n){
    if(n

  • @atech_guide
    @atech_guide 2 года назад +3

    Great Explaination in building the recursion. Thanks

  • @sakshiupadhyay3284
    @sakshiupadhyay3284 2 года назад +3

    More power to you striver... "UNDERSTOOD"

  • @user-ym1nv1pw8i
    @user-ym1nv1pw8i 2 месяца назад

    Here's the c++ code which I submitted (For reference):
    int f(int n, vector &dp){
    if(n

  • @punitgarg4627
    @punitgarg4627 2 года назад +8

    one small mistake ,for idx==1, return 1 aayega instead of 0, nicee explanation sir❤❤

    • @035asadali8
      @035asadali8 2 года назад +4

      he mentioned in video ,u missed

  • @ketanahuja8939
    @ketanahuja8939 2 года назад +5

    At 7:25 , it will be return 0 when (ind==0)

  • @lavakumar3243
    @lavakumar3243 11 месяцев назад +1

    The first thought It came to my mind was permutation and approached like permutation with repetition, but it gave timeout for test cases after n=30.

  • @ekta9145
    @ekta9145 2 месяца назад +1

    Understood! Thank you very much, sir.

  • @karanjitsinghrandhawa445
    @karanjitsinghrandhawa445 2 года назад +4

    Bhaiya I am currently learning c++ by this month I will complete all fundamentals of c++
    Please bhaiya can you suggest me where to start DSA as a beginner ?????
    Please bhaiya reply
    Love from Guwahati ❤️

  • @devanshkumar3816
    @devanshkumar3816 2 года назад +6

    understood! but one confusion... shouldn't it be "if(ind == 0) return 0; " as we are left with no way to reach to the end when ind equals 0 !

    • @rohalkurup1350
      @rohalkurup1350 2 года назад +1

      remember as if for standing in the same place there is one way , logically speaking there is no way , but if we are considering the problem here it will be 1

    • @suhailansari3847
      @suhailansari3847 2 года назад

      @@rohalkurup1350 how 1?

    • @akshaydeshmukh5390
      @akshaydeshmukh5390 2 года назад

      You are right. It should be 0 as we have already reached the destination and don't need to move any further. You can write separate base case like if (index

    • @nimsguy
      @nimsguy Год назад +2

      @@rohalkurup1350 but is it kind of confusing ?. because at step 1, yes there is one way to reach step 0, but at step 0, there is no way to reach as it is already reached. bit confusing this part is. :-(

  • @052_a_sourabhpathak5
    @052_a_sourabhpathak5 Год назад +1

    Damn , this is what tier 3 college should teach in DSA's classess!

  • @avakanksh
    @avakanksh Месяц назад

    UNDERSTOOD. But there is a small issue in the base case, n = 0 doesn't make any sense according to the problem, so we need to set the base case as n = 1 and n=2. Rest everything is understood. Thanks for the videos

  • @yashrawat5158
    @yashrawat5158 Год назад +1

    //memoization
    #include
    #include
    using namespace std;
    int frog(int n,vector &dp){
    //base case explanation
    // If n is 0, the function returns 1. This is because if the frog is already at position 0, then it doesn't need to make any more jumps to reach position 0, so there is only 1 way to do so.
    //If n is 1, the function returns 1 as well. This is because if the frog is at position 1, it can only make one jump of 1 step to reach position 0, so there is only 1 way to do so.
    if(n==0){
    return 1;
    }
    if(n==1){
    return 1;
    }
    // condition for dp
    if(dp[n]==-1){
    int left=frog(n-1,dp);
    int right=frog(n-2,dp);
    return dp[n]=left + right;
    }
    else{
    return dp[n];
    }
    }
    int main(){
    int n;
    cin>>n;
    vector dp(n+1,-1);
    cout

    • @TheAI-Tutor
      @TheAI-Tutor 8 месяцев назад

      bhai, if the frog is already at position 0, then it doesn't need to make any more jumps to reach position 0,
      SO IF oesn't need to make any more jumps to reach position 0, THEN WHY DOES HE NEED TO JUMP IF HE HAS ALREADY ARRIVED THERE? I'M V CONFUSED ABOUT THIS

  • @likhitbhogadi
    @likhitbhogadi 8 месяцев назад +2

    thanks bro, understood..

  • @siddheshborse3536
    @siddheshborse3536 Год назад +1

    Not getting feeling of Solution....
    but understood the shortcut very well...
    thank you😀

  • @ambharatrawat
    @ambharatrawat 2 года назад +2

    Awsome explanation, memorize fibonacci solution in JS:
    const m = {};
    function fib(i) {
    if (i

  • @shrodingerscat7099
    @shrodingerscat7099 15 дней назад

    // we will make solution from top to bottom here
    class Solution {
    public:
    int recur(vector &dp,int n,int i){
    // base case , dp[i] != -1 case , do something
    if(i == 0) return 1;
    if(i == 1) return 1;
    if(dp[i]!=-1) return dp[i];
    return dp[i] = recur(dp,n,i-1) + recur(dp,n,i-2);
    }
    int climbStairs(int n) {
    vector dp(n+1,-1);
    return recur(dp,n,n);
    }
    };
    top to bottom dp solution if someone wants

  • @tango2olo
    @tango2olo Год назад

    From step N-1 there is only 1 way to reach Nth step i.e. a 1-step jump. But from step N-2 there are 2 ways to reach step N, 2 1-step Jump and 1 2-step jump. So the recursion shall be Sol(N) = [Sol(N-1)*1] + [Sol(N-2)*2]; because for each Sol(N-2) we have 2 ways to reach Sol(N).

  • @amalasebastian9968
    @amalasebastian9968 Год назад +1

    Liked the video even before starting it..Obviously its made by Striver ,it had to be great❤

  • @RituSharma-zp7xs
    @RituSharma-zp7xs Год назад +1

    isn't when index == 1, it should return 1 instead of 0.

  • @user-ym1nv1pw8i
    @user-ym1nv1pw8i 2 месяца назад

    Understood!
    Mark for revision!

  • @azad8000
    @azad8000 Год назад +1

    dp Solution :
    static int fun(int n, int [] dp){
    if(n==0){
    return 1;
    }
    if(n0){
    return dp[n];
    }

    int n1 = fun(n-1,dp);
    int n2 = fun(n-2,dp);
    int ans = n1+n2;
    dp[n]=ans;
    return ans;
    }

    • @maverick5056
      @maverick5056 Год назад

      It wont work for 1e18 test cases..

  • @mohitagarwal1888
    @mohitagarwal1888 2 года назад

    This is your only video till now that i didnt understood .

  • @AyushRaj-sx6ju
    @AyushRaj-sx6ju 2 года назад +2

    Kudos to your effort striver ❣

  • @ganeshjaggineni4097
    @ganeshjaggineni4097 21 день назад

    NICE SUPER EXCELLENT MOTIVATED

  • @UECAshutoshKumar
    @UECAshutoshKumar Год назад +1

    Thank you sir
    Understood

  • @abytespaceneeded
    @abytespaceneeded 8 месяцев назад

    Solution for Climbing Stairs:
    #include
    #include
    using namespace std;
    // recursive
    // Time Complexity: O(2^N)
    // Space Complexity: O(N) - stack space
    int totalWays(int num) {
    if(num == 0) return 1;
    int step1 = totalWays(num-1);
    int step2 = 0;
    if(num-2 >= 0) {
    step2 = totalWays(num-2);
    }
    return step1 + step2;
    }
    // memoization
    // Time Complexity: O(N)
    // Space Complexity: O(N) + O(N) - stack space
    int helper(int num, vector& dp) {
    if(num == 0) return 1;
    if(dp[num] != -1) return dp[num];
    int step1 = helper(num-1, dp);
    int step2 = 0;
    if(num-2 >= 0) {
    step2 = helper(num-2, dp);
    }
    return dp[num] = step1 + step2;
    }
    int totalWays(int num) {
    vector dp(num+1, -1);
    return helper(num, dp);
    }
    // Tabulation
    // Time Complexity: O(N)
    // Space Complexity: O(N)
    int totalWays(int num) {
    vector dp(num+1, 0);
    dp[0] = 1;
    dp[1] = 1;

    for(int i=2;i= 0) {
    step2 = dp[i-2];
    }
    dp[i] = step1 + step2;
    }
    return dp[num];
    }
    // space optimization
    // Time Complexity: O(N)
    // Space Complexity: O(1)
    int totalWays(int num) {
    if(num == 0 || num == 1) return 1;
    int prev = 1, secondPrev = 1;
    for(int i=2;i

  • @shivammishra2413
    @shivammishra2413 Месяц назад

    understod.thanks striver bhaiya

  • @DPCODE72
    @DPCODE72 2 года назад +1

    Now I would believe in myself that I will be selected as A SDE in Amazon soon. Bhaiya with ur support & help.

  • @roydebraj2188
    @roydebraj2188 Месяц назад

    did it myself feels soo godd hehe

  • @kathanvakharia
    @kathanvakharia Год назад

    Understood...Completed 2/56

  • @sauravfarkade7032
    @sauravfarkade7032 Год назад

    Understood!!
    Points covered:
    Step1. Identify a DP Problem.
    Step2. To solve the problem after identification.
    1. Try to represent the given problem in terms of index.
    2. Do all possible operations on that index according to the problem statement.

  • @easycode3189
    @easycode3189 Год назад +1

    nderstood 💯💯 Great Explanation. Thank you very much for all you efforts🔥🔥

  • @immortal6978
    @immortal6978 10 месяцев назад

    "UnderStood" Got it.

  • @Harshraj-xw4wb
    @Harshraj-xw4wb Год назад

    Understood the three points

  • @parthadhikari00
    @parthadhikari00 Год назад +1

    Should'nt the base case be " if(ind==0) return 0 ". Correct me if I'm wrong.

    • @lonerider6695
      @lonerider6695 6 месяцев назад

      Same doubt if u got answer tell me

  • @hashcodez757
    @hashcodez757 27 дней назад

    "UNDERSTOOD!!"

  • @amansinghal4663
    @amansinghal4663 Год назад +1

    when n==0, why did we return 1 ?
    we should have return 0 because there is no staircase present so 0 steps will be required to climb it.

  • @sunildhiman90
    @sunildhiman90 11 месяцев назад +1

    Hi Striver @takeUforward, one question here, As you said previously if we need to find all possible ways then we try recursion and backtracking, Here again we are saying same thing. So does it mean dp is just the optimized way of solving backtracking problems with time and space both optimized?

  • @shaikkhizar8133
    @shaikkhizar8133 4 месяца назад +1

    Understood striver

  • @aagamjain2131
    @aagamjain2131 Год назад +1

    Awesome explanation!!
    Understood sir 🔥💯

  • @coder0799
    @coder0799 2 года назад +1

    Now all CS student can do DP without any fear...

  • @user-iv9mx7md8q
    @user-iv9mx7md8q 9 месяцев назад

    raj bhaiya "understood"

  • @rushyya
    @rushyya Год назад

    Thanks for the Video!
    Understood
    2/56

  • @creativenc6269
    @creativenc6269 Год назад +1

    Hub gariboke DEVTA ho tum❤😅

  • @somnathroy102
    @somnathroy102 Год назад

    This is so simple. Thank you Understood.

  • @suryashjha7892
    @suryashjha7892 2 года назад +2

    Amazing explanation 🔥🔥🔥

  • @shivanshumishra0560
    @shivanshumishra0560 Год назад

    Understood !!! really awesome explaination........

  • @rishabhgupta9846
    @rishabhgupta9846 Год назад

    can also solve using this way
    int helper(int i,int n,vector&dp){
    if(i==n)return 1;
    if(i>n)return 0;
    if(dp[i]!=-1)return dp[i];
    return dp[i]=helper(i+1,n,dp)+helper(i+2,n,dp);

    }
    int climbStairs(int n) {
    vectordp(n+1,-1);
    return helper(0,n,dp);
    }

  • @AnitaSharma-bk4fc
    @AnitaSharma-bk4fc Месяц назад

    Understood thanks striver❤

  • @easycode3189
    @easycode3189 Год назад

    Understude Easily Nice Explanation

  • @user-kj7ne5gj5v
    @user-kj7ne5gj5v Год назад

    Understood Bhaiya
    Jai Hind

  • @perveenneha1423
    @perveenneha1423 2 года назад +1

    understood heart felt thank you

  • @SwapnilChavan-im7xh
    @SwapnilChavan-im7xh Год назад

    Understood 🔥🔥🔥
    Thanks for Your teachings

  • @ritikasingh7252
    @ritikasingh7252 2 года назад +1

    Awesome explanation👏

  • @RITHINHN
    @RITHINHN Год назад

    #define N 1000000007
    vector dp(100000,-1);
    int countDistinctWays(int nStairs) {
    if(nStairs==0||nStairs==1)
    return 1;
    if(dp[nStairs]!=-1)
    return dp[nStairs];
    int left=countDistinctWays(nStairs-1);
    int right=countDistinctWays(nStairs-2);
    return dp[nStairs]=(left+right)%N;
    }

  • @sparshsharma3150
    @sparshsharma3150 2 года назад +1

    Understood bhaiya! 🔥

  • @deepanshudhakate9622
    @deepanshudhakate9622 2 года назад +2

    UNDERSTOOD 🔥🔥

  • @laveshbhandari9719
    @laveshbhandari9719 11 месяцев назад

    Understood.
    Step 1: Write the problems in term of index.
    Step 2: Do all possible operation on that index.
    Step 3: Total ways: +1
    max, min: find it.

  • @ashokm6528
    @ashokm6528 Год назад

    Understood three points ❤

  • @alicewarriors2028
    @alicewarriors2028 Год назад

    trust me striver. after watching your videos and solving many questions i am able to think how to solve any problem and only thing lagging behind that its not the complete solution
    my made up solutions always have some edge case which you always solve it

  • @anshumaan1024
    @anshumaan1024 Год назад +1

    understood 🙂

  • @avtarchandra2407
    @avtarchandra2407 2 года назад

    Kudos to your effort striver ❣️

  • @jayantmishra6897
    @jayantmishra6897 2 года назад

    bhayia your way of teaching is amazing.one thing i want to ask you that from where did you learned all these.

  • @AkashGupta-nq8po
    @AkashGupta-nq8po Год назад

    i love thi dp series