Pascal Triangle | Finding nCr in minimal time

Поделиться
HTML-код
  • Опубликовано: 26 авг 2024
  • Problem Link: bit.ly/3jY4iuF
    Notes/C++/Java/Python codes: takeuforward.o...
    We have solved the problem, and we have gone from brute force and ended with the most optimal solution. Every approach's code has been written in the video itself. Also, we have covered the algorithm with intuition.
    Full Course: bit.ly/tufA2ZYt
    You can follow me across social media, all my handles are below:
    Linkedin/Instagram/Telegram: linktr.ee/take...
    00:51 What do you mean by Pascal's Triangle?
    02:27 3 Types of problems that might be asked to you
    03:52 1st Type Problem Statement
    06:56 Formula shortcut
    07:49 Code
    09:46 Complexity
    10:31 recap
    10:54 2nd Type Problem Statement
    11:38 Brute force
    12:18 Complexity
    12:37 Optimal solution & Deep dive into formula and observation
    15:11 Minor changes and formula
    17:27 Pseudocode
    19:06 Complexity
    19:21 3rd Type Problem Statement
    20:00 Brute force
    20:07 Pseudocode
    21:17 Complexity
    21:50 Optimal Solution
    22:19 Code
    25:16 Interview Tip : Code Quality

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

  • @takeUforward
    @takeUforward  11 месяцев назад +25

    Please watch our new video on the same topic: ruclips.net/video/bR7mQgwQ_o8/видео.html

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

      Recursion without a base case 😁😁

    • @user-di2xb2xp8l
      @user-di2xb2xp8l Месяц назад

      Bro one dout my code is executed in codestudio but not executed in leetcode y😢

  • @divyareddy7622
    @divyareddy7622 Год назад +92

    your videos actually got me out of depression and gave me aa hope at becoming better at DSA!!!!

  • @takeUforward
    @takeUforward  Год назад +155

    Please do like the video, it won't cost you anything, but it will highly motivate me :)

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

      Did this problem move to easy from hard?

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

      Ofcourse we do......
      But not only for motivation,but also for your efforts.......😊
      Such type of free content is very helpful for those persons who are not capable to buy an expensive course......👍✨

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

      done bhaiya

  • @swacharahman5084
    @swacharahman5084 Год назад +37

    I always amazed the level of intelligence you have brother, Thank you for this playlist, Trust me your playlist is making thousands/millions of students better coder.

  • @priy9491
    @priy9491 2 месяца назад +9

    We can reduce the time complexity to (n^2/2) by running the inner loop only for row/2 times and assigning values symmetrically because the pascals triangle is symmetric.
    Thank you for the videos!

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

      that's what I was thinking

    • @Gurunat16
      @Gurunat16 2 месяца назад

      To add symmetry to the result, you need to run a loop right? Or is there any other ways?

    • @priyankasoni5537
      @priyankasoni5537 3 дня назад

      Can you please explain Space complexity of both the approaches of variation 3? Like how come it is O(1)(Written in the sheets notes and also strivers mentioned in the video

  • @naveensaicremsiyadlapalli3769
    @naveensaicremsiyadlapalli3769 Год назад +61

    #include
    using namespace std;
    class PascalsTriangle{
    private:
    int Ncr(int n,int r)
    {
    int ans=1;
    for(int i=1;i

  • @md.ualiurrahmanrahat2400
    @md.ualiurrahmanrahat2400 6 месяцев назад +2

    used to solve this problem by myself but the solution was brute force method. Never have I ever thought this problem can be solved by such observation. Hats off to the effort Striver puts in his video. Incredible!

  • @p1xel3434
    @p1xel3434 Год назад +10

    nCr = nC(n-r) so, we can take i < min(n, n - r) it is more efficient

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

      will not affect complexity though so no need

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

    Frankly speaking I am not able to understand Pascal triangle problem until I watched this video, Earlier I see almost 5-7 videos on RUclips , from those videos I Get what is the pascal triangle, but didn't able to solve the problem. After watching this video, I have confidence to solve any problem based on pascal triangle.

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

    Finally I was able to solve a problem before looking at your solution. That too hard one 😎 All thanks to your foundational videos on Arrays ♥
    Watched the video anyways. Just to look at your approach

  • @akashkumarmaurya2319
    @akashkumarmaurya2319 11 месяцев назад +2

    very very easy solutoion ..every time i can think about only brute solution but u gived both the solution at same time which is fantastic ...amazing love the way you teach

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

    i think best teacher present is this man. Please try to motivate him and support him. Love you bro

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

    450 questions will need many months of continuous hard work. Hats off bhaiya

    • @takeUforward
      @takeUforward  Год назад +25

      We have already covered > 60%, trees : 56, graphs: 56 dp: 56 ;)

    • @AdityaSingh-in6ce
      @AdityaSingh-in6ce 10 месяцев назад

      there is no good playlist for string on RUclips only one or two videos and its and important topic please start with string@@takeUforward

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

    Understood! Super awesome explanation as always, thank you very very much for your effort!!

  • @NikitaSingh-kz2ii
    @NikitaSingh-kz2ii Год назад +1

    APPROACH TO THIS PROBLEM IS SUPER SE V BHT BHT BHT ZYADA UPAR🔥🔥🔥🔥🔥🔥🔥🔥🔥

  • @deokumarjnu
    @deokumarjnu 6 месяцев назад +1

    Thanks Striver, my code is not passing because of spacing issue in between digits😌 we can do in more way, pascle is nothing but power of 11, so if it's asking for N, then just run a loop from 1 to N and calculate the power(11, i), push into the vector if spacing is not considered. Stuck with spacing.

  • @sourabhsoni5065
    @sourabhsoni5065 9 дней назад

    Very Nice Explanation

  • @shrutisrivastava7174
    @shrutisrivastava7174 9 месяцев назад +1

    Really amazed by ur Intelligence but i don't know why i am not think this kind of solution on my own why 😭😭😭

  • @jatinsareen7771
    @jatinsareen7771 Год назад +19

    Hey striver, I was having a doubt that will you cover up some competitive programming concepts in this course or not?? Because covering all cp topics will make this course legendary and no one will be able to surpass this level in generations.

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

    Thanks for taking us forward,, Striver❤

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

    Each row is binomial expansion coefficient for certain power. We can directly use combination formula to get it .

  • @akshatmalviya8563
    @akshatmalviya8563 13 дней назад

    I did the last part with dp. Complexity was O(n^2)

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

    3:40 4th type question can be asked is sum of nth row
    ans :simple left lift 1 by (n-1) that is 1

  • @infinitecodes
    @infinitecodes 10 месяцев назад +1

    Thank you very much for this amazing course 🎉❤

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

    Python code for 1st variant
    def pascal(n,r):
    res = 1
    for i in range(r):
    res = res * (n-i)
    res = res/(i+1)
    print(res)
    n = int(input("Value of N"))
    r = int(input("Value of R"))
    pascal(n-1,r-1)

  • @venup2813
    @venup2813 6 месяцев назад +2

    Excellent 👌

  • @shivamjain1811
    @shivamjain1811 Год назад +6

    whats the intiution behind (n-1)C(r-1) ? can someone plz tell

    • @adirohilla
      @adirohilla 10 месяцев назад +1

      I am also looking for its intuition, thanks for raising this , but nobody has still answered on it yet

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

      12:43 yaha se dekh Bhai agr phir bhi na smjh aye TB btayio

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

    🔥🔥 love your teaching 🤗 you are my inspiration

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

    It's a very tricky problem based of math nCr.. approach by you is really good

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

    SDE Sheet: Day 1 Problem 2 Done!

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

    Your explanation is superb ❤️❤️..
    Ride on Striver.

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

    class Solution(object):
    def pascal(self, numRows):
    pt=[[1]]*(numRows)
    pt[0]=[1]
    for i in range(1,numRows):
    pt[i]=[1]*(i+1)
    for j in range(1,i):
    pt[i][j] = pt[i-1][j-1]+pt[i-1][j]
    return pt
    for generating entire pascal's triangle.

  • @RohitRohit-zp3zs
    @RohitRohit-zp3zs Месяц назад +1

    10 rs ki pepsi striver bhai ki explaination sexyyy!!!

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

    Timestamps
    00:51 What do you mean by Pascal's Triangle?
    02:27 3 Types of problems that might be asked to you
    03:52 1st Type Problem Statement
    06:56 Formula shortcut
    07:49 Code
    09:46 Complexity
    10:31 recap
    10:54 2nd Type Problem Statement
    11:38 Brute force
    12:18 Complexity
    12:37 Optimal solution & Deep dive into formula and observation
    15:11 Minor changes and formula
    17:27 Pseudocode
    19:06 Complexity
    19:21 3rd Type Problem Statement
    20:00 Brute force
    20:07 Pseudocode
    21:17 Complexity
    21:50 Optimal Solution
    22:19 Code
    25:16 Interview Tip : Code Quality

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

      Just a suggestion, don’t add ‘-‘ in timestamps, its
      00:05 Intro
      Just a space :) it becomes easier for me to copy paste.
      Thank you for always adding it up 🫶

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

    another solution for generating pascal triangle , its Time Complexity is O(n^2/2) and space complexity to O(n^2/2)
    class Solution {
    public:
    vector generate(int numRows)
    {
    vector ans(numRows);
    for(int i=0;i

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

    Loved it, very well explained!

  • @vigneshkumarganesan1529
    @vigneshkumarganesan1529 7 месяцев назад +1

    I don't get the point where he bring the formula. How did he arrive that formula will give the output? anyone knows the answer?

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

    Amazing explanation. thanks a ton. Working harder to make u proud.

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

    Striver!!Please upload videos on binary search.

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

    verrry good explanation and even the methods of solving the given problem😇

  • @kabilm8040
    @kabilm8040 День назад

    TRIED MYSELF
    class Solution {
    public:
    vector generate(int numRows) {
    vector ans(numRows);
    for(int i=0;i

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

    Understood brother, Thanks for this amazing amazing explanation...

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

    You are the GOD of dsa

  • @AshishSahu-ef9rl
    @AshishSahu-ef9rl 4 дня назад

    Maja aagaya 😊

  • @psrs985
    @psrs985 5 месяцев назад

    Or you could use the previously stored values to generate the lower rows which will take O(n*n) TC

  • @culeforever5408
    @culeforever5408 10 месяцев назад +1

    understood 😇

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

    Samaj aa gaya!!

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

    Understood

  • @prajwalnakure
    @prajwalnakure 5 месяцев назад

    00:04 Pascal's Triangle - A pattern of numbers where each number is the sum of the two directly above it.
    02:05 Finding element at a specific row and column in Pascal Triangle.
    06:48 Shortcut for finding nCr in minimal time: multiply numbers from n to n-r+1.
    09:11 The numerator in nCr calculation keeps getting multiplied and then divided with the value of i+1.
    13:39 Pascal Triangle formula is used to find nCr in minimal time.
    15:59 Pascal Triangle for finding nCr
    20:22 Generate Pascal Triangle row in minimal time
    22:16 Optimal solution for finding nCr in minimal time
    26:16 The RUclipsr encourages viewers to subscribe and engage with their content.

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

    Aap 3rd year me the tab aap kitane hours Coding karate the??

  • @codeman3828
    @codeman3828 4 дня назад

    Wonderful

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

    superb explanation

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

    thank you Anna

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

    Can you pls pls plsssss do strings before binary search next plsss🙏 ?

  • @DeadPoolx1712
    @DeadPoolx1712 7 дней назад

    UNDERSTOOD;

  • @AlokSingh-jw8fr
    @AlokSingh-jw8fr Год назад +1

    int mod = 1000000007;
    int nCr(int n, int r){
    if(n

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

    Hi, Did anyone here faced probelm in Test Case 50 of Gfg. If yes, then can you please expalin how did you tackle?

  • @user-kg1tt8pw4t
    @user-kg1tt8pw4t 5 месяцев назад

    instead, for the first problem, the loop should run for min(r, n-r) and not 'r' because if it is 10C7, r is bigger than n-r

    • @harshsinha7642
      @harshsinha7642 5 месяцев назад

      I tried solving ncr problem with this approach but still test cases are failing for ex 69c43
      You can search ncr problem gfg ... Can you try solving with first approach along with min(n-r, r) modification and let me know?

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

    Awesome explanation as usual💗

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

    1st -> 3:51
    2nd -> 10:55
    3rd -> 19:21

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

    Awesome video. Thankyou striver ❤❤

  • @rishabhgupta1222
    @rishabhgupta1222 4 месяца назад

    Understood very well

  • @muchmunchies43
    @muchmunchies43 20 дней назад

    Understood!

  • @Shivi32590
    @Shivi32590 2 месяца назад

    understood. Respect!

  • @gokulakumar7658
    @gokulakumar7658 8 месяцев назад +3

    How about this? This is the 3rd type - print the entire triangle and I believe this is also O(n^2) solution (can someone please confirm?). I came up with this in Leetcode before watching the solution video.
    class Solution {
    public:
    vector generate(int numRows) {
    std::vector result;
    result.reserve(numRows);
    result.push_back({1});
    for (int i = 0; i < numRows - 1; i++) {
    std::vector vals;
    vals.reserve(i+1);
    vals.push_back(1);
    for (int j = 1; j < result[i].size(); j++) {
    auto val = result[i][j-1] + result[i][j];
    vals.push_back(val);
    }
    vals.push_back(1);
    result.push_back(vals);
    }
    return result;
    }
    };

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

    understood!!

  • @reddygopichand2002
    @reddygopichand2002 9 месяцев назад

    We can use ncr=nc(n-r) when r>n/2 10:44

  • @maccode07
    @maccode07 19 дней назад

    thank you bhaiyaaaaa.....please muze TUF+ ka subsription do na

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

    Bhaiya, Combination wale question ki bhi list bana do please, Ya phir Combination ke concept ke baare mai ek acchi video bana do.

  • @complexcat6329
    @complexcat6329 9 месяцев назад

    understood, thank you!

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

    Just a small improvement for the nCr calculation.
    int findNumber(int n,int r)
    {
    long long res = 1;
    for(int i = n; i > max(r,n-r); --i)
    {
    res*=i;
    res/=(n-i+1);
    }
    return res;
    }
    Time Complexity : O( min(r, n-r) )

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

    Hey guys, I'm not understanding why we need to solve this using this formula. It's taking same amount of time and complexity that we needed to solve the problem using loops

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

      The number wont fit in any integer value it will overflow ... try solving thee question in gfg you will see that the results are in -ve

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

    You are the best !

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

    Understood, thank you.

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

    Excellent👍👏

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

    Understood! sir

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

    understood ..Thanks🙂

  • @thebestofyoutube4810
    @thebestofyoutube4810 5 месяцев назад

    Thanks a lot my ninja.....

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

    I think to print n rows for pascal triangle would fail for large test cases even if we take MOD of 1e9 + 7

  • @sarthakkharade7112
    @sarthakkharade7112 4 дня назад

    understood

  • @BB-rh7gl
    @BB-rh7gl Месяц назад

    Can someone please explain how you intuitively figure out that a formula like the binomial coefficient needs to be used in a problem like this? I can't see how it would occur to me unless I've memorized it.

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

    understood :) thankyou striver

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

    @striver bhaiya could u please make a video on what are sample input output test cases constraints and how to code on online compilers on coding platforms as i am beginner and i am facing difficulty in understanding these

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

    we can use recursion right ??
    generate the answer for N-1 and the add another row by with the help of last row of generated answer and add this row and return the final answer

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

    good video ... understood

  • @konankikeerthi
    @konankikeerthi 2 месяца назад

    Thanks bro. Understood

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

    class Solution{
    public:
    vector generateRow(int row) {
    long long ans = 1;
    vector ansRow;
    ansRow.push_back(1); //inserting the 1st element
    //calculate the rest of the elements:
    for (int col = 1; col < row; col++) {
    ans = (ans * (row - col)));
    ans = (ans / col));
    ansRow.push_back(ans);
    }
    return ansRow;
    }
    vector nthRowOfPascalTriangle(int n) {
    // code here
    vector ans;
    //store the entire pascal's triangle:
    for (int row = 1; row

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

    Great work....

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

    Keep doing great 👍🎉

  • @nitinchandrasahu1774
    @nitinchandrasahu1774 5 месяцев назад +1

    Try This. 😁😁
    vector generate(int numRows) {
    vector ans;
    for(int i = 0; i

  • @AS-gf3ci
    @AS-gf3ci Год назад

    Q.2 Code in C++
    #include
    using namespace std;
    void printRow(int n) { // T.C --> O(n) S.C --> O(1)
    int ans = 1;
    cout

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

    This is great...I hope you earn enough from all this 😊

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

    We personally call it Parallel computing or Stacking method.

  • @soumiyamuthuraj3516
    @soumiyamuthuraj3516 2 месяца назад

    Awesome

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

    Understood✅🔥🔥

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

    Understood, thanks :)

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

    Understood ❤

  • @yashisharma3621
    @yashisharma3621 5 месяцев назад

    Need some advice! I have been doing DSA consistently for the last 1 month but I wasn’t able to come up with an efficient solution for this problem by myself. I don’t know if I am doing something wrong. Is this actually kind of advanced or I just need more practice?

  • @iamvtyagii9540
    @iamvtyagii9540 2 месяца назад

    striver ❤

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

    understood :)