Unique Binary Search Trees | Count all structurally unique BSTs | Catalan number | Leetcode #96

Поделиться
HTML-код
  • Опубликовано: 9 фев 2025
  • This video explains a very important programming interview problem which is to count the number of structurally unique binary search trees (BSTs) having N nodes.I have shown the idea of conversion of this problem from given state to finding the Nth catalan number.This problem can be solved by recursion, dynamic programming and also simply by using the binomial formula for finding Nth catalan number.I have taken sufficient examples to show the intuition and approach and at the end of the video, i have also shown the code walk-through. CODE LINK is present below as usual. If you find any difficulty or have any query then do COMMENT below. PLEASE help our channel by SUBSCRIBING and LIKE our video if you found it helpful...CYA :)
    =================================================================
    INSTAGRAM: / surya.pratap.k
    LinkedIn: / surya-pratap-kahar-47b...
    WEBSITE: techdose.co.in/
    =================================================================
    CODE LINK: gist.github.co...
    CATALAN NUMBER: • How to calculate Catal...

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

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

    Most intuitive, thanks a ton buddy, I was reading Leetcode blogs for 3 days with all crappy methods, yours is simply brilliant and clear !

  • @shresthmishra9329
    @shresthmishra9329 4 года назад +6

    This explanation helped me to solve another famous problem ''intersecting chords in a cirlce". Thank you tech dose.

    • @techdose4u
      @techdose4u  4 года назад

      Welcome :)

    • @vipulsharma7190
      @vipulsharma7190 4 года назад

      how did you solve that by using this?

    • @shresthmishra9329
      @shresthmishra9329 4 года назад +1

      @@vipulsharma7190 Because it can be solved using catalan number method.
      Suppose you a have a circle wihtout any cuts then it is complete 1 unit.
      But when you make 1 cut then circle is distributed in two parts. (1+1=2). Then when you make the second cut total number of parts of the circle will be 2 parts pahle se the + 2 (because this is the second cut) . Now in total you have 4 cuts. And now if you cut the third cut then 4 pahle se + 3(because this is the third cut). So total parts of circle is 7. Again if make the 4th cut then 7 + 4 (4 becauae this is the 4th cut) So total parts of circle = 11.
      And this is how it goes on which can be solved with the help of catalan number method.

    • @vipulsharma7190
      @vipulsharma7190 4 года назад +1

      @@shresthmishra9329 thanks bro for explanation

    • @shresthmishra9329
      @shresthmishra9329 4 года назад

      @@vipulsharma7190 ☺️

  • @anitasrivastava983
    @anitasrivastava983 4 года назад +5

    The man , the myth , the legend uploads once again!

  • @sujithns5033
    @sujithns5033 4 года назад +6

    This channel is very underrated. Nice explanation!

    • @techdose4u
      @techdose4u  4 года назад

      Thanks

    • @ravipatiramya4185
      @ravipatiramya4185 3 года назад

      @@techdose4u can u share the link where u exaplained Catalan number

  • @bhuwansingh2534
    @bhuwansingh2534 3 года назад +12

    The only time JEE level maths was used again.

  • @bhavitmathur5476
    @bhavitmathur5476 3 года назад

    Very Helpful Videos. Please keep posting

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

    5:21, one small correction, the correct formula will be Cn=∑i=0,n−1 (CiCn−i−1. ) It will go to n-1, not upto n.

  • @kunalsoni7681
    @kunalsoni7681 4 года назад +3

    Such a great video explanation ☺️😊.. thank you sir

  • @Official-tk3nc
    @Official-tk3nc 4 года назад +4

    Great video . I think you are an Indian because no one in youtube could teach better than Indian ...... atleast cse concepts :) ###nitjstudenthere

  • @abhijeetkumar2204
    @abhijeetkumar2204 4 года назад +1

    class Solution {
    long long dp[100000]={0};
    int catalan(int n)
    {
    if(n==0)
    {
    return 1;
    }
    if(dp[n]!=0)
    {
    return dp[n];
    }
    int ans=0;
    for(int i=1;i

  • @nagalakshmi1385
    @nagalakshmi1385 4 года назад +3

    very good video, first time subscriber, want to check out your other videos too. your implementation is Order of n square. Order of n implementation is " long Cn=1;
    for(int n=0;n

    • @BarkaDog
      @BarkaDog 4 года назад +1

      In interviews, you can be expected to explain more than one approach. So you should always be prepared.

    • @techdose4u
      @techdose4u  4 года назад

      Yes true

  • @rimpiranibaruah5353
    @rimpiranibaruah5353 3 года назад +1

    Great explanation

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

    Very well explained. Subbed!

  • @chetanpatteparapu7600
    @chetanpatteparapu7600 4 года назад +1

    This is very helpful bro ... Thanks a lot..

  • @melwinalm
    @melwinalm 4 года назад +3

    As always, great explanation

  • @kuangyimeng8850
    @kuangyimeng8850 3 года назад

    very clear explanation. Thank you.

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

    Hey, your channel is great and your explanations are very nice. I also noticed that your handwriting is very legible. What's the setup you use for whiteboarding? Do you do it using a digital drawing pad?

  • @okeyD90232
    @okeyD90232 3 года назад +1

    You should add this to your tree playlist.

  • @siddhartha.saif25
    @siddhartha.saif25 4 года назад +1

    very helpful. thanks

  • @kunalsoni7681
    @kunalsoni7681 4 года назад +1

    Helpful video 😊 too much for interview
    Thank you always

  • @paragroy5359
    @paragroy5359 4 года назад +1

    Nice explanation sir...

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

    thank u sir!

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

    thanks

  • @biranchinarayanpadhi9067
    @biranchinarayanpadhi9067 4 года назад +1

    Brillaint 3xplanation bro!!!

  • @alirezaamedeo
    @alirezaamedeo 3 года назад

    5:22 You wrote Catalan number wrong. It should be C(n+1) = Sigma...

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

    when n=4;
    C0=0;
    C1=1;
    C2=2;
    C3=3;
    = C0*C1 + C1*C2 + C2*C1 + C3*C
    = 0*3 + 1*2 + 2*1 + 3*0
    = 4.
    But 4 is wrong. Please let me know if I am wrong.

  • @SuhasSrivats
    @SuhasSrivats 4 года назад +1

    In short, this is the formula:
    Catalan Number = (2n)!/((n+1)!*n!)

  • @yitingg7942
    @yitingg7942 4 года назад +1

    Thank you by watching this video alone I know how to solve it. What about 95. Unique Binary Search Trees II ? I think it's much harder than this.

    • @techdose4u
      @techdose4u  4 года назад

      Yea it must be!! Since you told me 😅 lol

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

    first example binary search tree (BST) structure is invalid .
    All nodes in the right subtree of a node must have values greater than the node's value.
    All nodes in the left subtree of a node must have values lesser than the node's value.

  • @AmanSharma-or5vh
    @AmanSharma-or5vh 2 года назад

    best

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

    Itna mazaa kyu aa rha haiii😀

  • @orugantilokesh1579
    @orugantilokesh1579 4 года назад +1

    I am viewing the solution directly , i couldn't think of any method to solve it , is it alright or should i change my approch.

    • @BarkaDog
      @BarkaDog 4 года назад +3

      If you made no progress in 30 minutes then look at the solution.

    • @techdose4u
      @techdose4u  4 года назад +5

      It's alright. You don't have to know everything. Just keep learning new concepts.

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

    AND.. how are we supposed to come up with this formula during interview ? NOP , not intuitive

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

    Hi, could you please upload a video to generate unique binary search tree in the range [1,n] please

    • @techdose4u
      @techdose4u  4 года назад +1

      Sure. That is an extended question.

    • @lokeshojha1542
      @lokeshojha1542 4 года назад

      int count_BT(int n){
      if(n

  • @meghamalviya8495
    @meghamalviya8495 4 года назад +1

    Can you please clear my doubt as to why and how we would have only 3 combinations of 2,3,4 (i.e. c3) in the right subtree when taking 1 as a root? Why won't there be 5 structurally unique combinations at there (for 2,3,4) because we would get 5 as a answer when we have n=3?

    • @techdose4u
      @techdose4u  4 года назад +1

      Actually C3 means count of no of unique BSTs with 3 unique numbers. It is not an exact value. Think of it as an unknown constant.

    • @meghamalviya8495
      @meghamalviya8495 4 года назад

      @@techdose4u ohk..thanks!

  • @kevinchittilapilly8221
    @kevinchittilapilly8221 4 года назад

    Can anyone explain why T[0] is taken as 1? If there are no nodes then shouldn't total bst be 0?

    • @calvin2042
      @calvin2042 3 года назад

      No structure is a unique structure.

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

    jab sb kuch dusre video se hi dekhna tha toh ye video kyu bnaye ??