Longest Common Subsequence (LeetCode 1143) | Full Solution with a natural explanation

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

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

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

    I came across some other popular videos explaining this problem, and this is so far the most favorite video which contain the explanation that I am looking for. Thanks alot

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

      Yeah! same feeling here. He makes it clear, simple and visual! I love it!

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

    Great explanation. I have seen many dp solution but nobody explanation as clearly as you did

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

      Happy you feel this

  • @KoundinyaKoorapati-o8v
    @KoundinyaKoorapati-o8v 4 месяца назад +1

    The best explanation I have come across for this problem till date 👍

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

    Thanks!

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

      Thank you so much for the support.

  • @mysenigteriocryight546
    @mysenigteriocryight546 23 дня назад

    Please make more such amazing videos your explanation is just top notch. Never understood dp tabulation before like this.

    • @nikoo28
      @nikoo28  23 дня назад +1

      I'm glad you liked the explanation!

  • @Usseeer_kaizen
    @Usseeer_kaizen 10 месяцев назад +2

    great approach, thanks teacher, the best explanation I have ever seen

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

    your way of teaching is just great sir , Thanku !!

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

      Thanks and welcome

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

    Amazing explanation of the problem statement and the solution! We had this question in lecture last week and I found it really confusing, thanks for helping out with this Nikhil!!

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

    BEST EXPLANATION TILL DATE ...WOW AMAZING SIR .....Respect +++++++++++++++

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

    Best explanation ever!

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

    Thanks for clearly explaining DP Bottom up approach in normal array traversal instead of reverse traversal. Thanks!

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

    Thanks a lot sir ..u make hard ques in easy way

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

    Great explanation sir .
    Please start a playlist of hard DSA problems.

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

    you are such a nice teacher)

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

    man wish I could have you as my tutor..lol..you explain everything so well.

    • @nikoo28
      @nikoo28  20 дней назад +1

      Wow, thanks!

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

    Could you also do a topdown approach please

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

    is the first row (the one with the empty string) also included in the actual dp table or was that only for visualization purposes?

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

    Nice explanation bro👏

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

    You are great Bro, just keep doing

  • @rode_atharva
    @rode_atharva 10 месяцев назад +2

    while(true){
    print("great explenation")
    }

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

      😊

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

    What an explanation 😦😦

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

    Thank you so much brother!

  • @atifakhtar8828
    @atifakhtar8828 3 месяца назад +1

    this is everything ...all dp is here

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

    sir sir sir you are a legend

  • @jayaveeran1
    @jayaveeran1 7 месяцев назад

    This is no less than excellent !

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

    sir can you explain the backtracking part? To print longest common subsequence

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

      i will make a video on it soon

  • @AmalGeorge-xt3kq
    @AmalGeorge-xt3kq Год назад

    Sir, in this problem you are iterating from i=1, j=1. but, in the given example the memoization table has dp[0][1]=1. how does it got 1 in program

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

      when you initialize a 2D array, all elements are initialized to 0 by default. That is why I run my loop from i=1, j=1

  • @himanshuajwani9226
    @himanshuajwani9226 7 месяцев назад

    amazing and detail explained

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

    No recursive brute force for this??????????????

  • @EgorChebotarev
    @EgorChebotarev 8 месяцев назад +1

    nice explanation

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

    class Solution {
    public int longestCommonSubsequence(String text1, String text2) {
    // Ensure text1 is the longer string to minimize space usage
    if (text2.length() > text1.length()) {
    return longestCommonSubsequence(text2, text1);
    }
    // Convert strings to character arrays for easy access
    char[] s1 = text1.toCharArray();
    char[] s2 = text2.toCharArray();
    // Create two arrays to store the lengths of longest common subsequences
    int[] previousRow = new int[s2.length + 1];
    int[] currentRow = new int[s2.length + 1];
    // Loop through each character in s1
    for (int i = 0; i < s1.length; i++) {
    // Loop through each character in s2
    for (int j = 0; j < s2.length; j++) {
    // If characters match, increment the length from the previous row and previous column
    if (s1[i] == s2[j]) {
    currentRow[j + 1] = previousRow[j] + 1;
    } else {
    // If characters don't match, take the maximum length by ignoring one character either from s1 or s2
    currentRow[j + 1] = Math.max(currentRow[j], previousRow[j + 1]);
    }
    }
    // Swap rows: currentRow becomes previousRow for the next iteration
    int[] temp = previousRow;
    previousRow = currentRow;
    currentRow = temp;
    }
    // The length of the longest common subsequence is in the last element of previousRow
    return previousRow[s2.length];
    }
    public static void main(String[] args) {
    Solution solution = new Solution();
    // Test cases
    System.out.println(solution.longestCommonSubsequence("abcde", "ace")); // Output: 3
    System.out.println(solution.longestCommonSubsequence("abc", "abc")); // Output: 3
    System.out.println(solution.longestCommonSubsequence("abc", "def")); // Output: 0
    }
    } this is true dynamic solution

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

    Sir i love you so much

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

    Thanks Brother

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

    Thanks

  • @exe.m1dn1ght
    @exe.m1dn1ght Год назад

    Hello Sir, can you make a good video about iteration and loops ? And I hope you will not give the example " You need to repeat 10 times hello, how would you do it ? " ..

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

      What do you want to understand when it comes to loops. I can think on those lines.

    • @exe.m1dn1ght
      @exe.m1dn1ght Год назад +1

      @@nikoo28 I dont even know what i'm trying to understand .. I solved 380 problems on LeetCode and still can't really understand them a hundred percent, I use for and while loops to solve problems by pure instinct .. It's like these loops are simulating real world but at a text level , for example if i want to drink a glass of water the translation to text is while ( i still have water in the glass) i keep doing the drinking logic and decrease the water in the glass, but then you have conditions like while (i still have the light on) i keep reading , but that condition is changing based on something decreasing or increasing because mathematics is present in everything right ? we can quantify everything if we really think about it no ? I'm trrying to create this clear picture in my mind comparing programming text and real life and real life to programming text .. Am i overthinking this or I am going crazy ? Please help Sir !

    • @RamuKumar-yl4yp
      @RamuKumar-yl4yp Год назад

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

      @@exe.m1dn1ght I never imagined a way of comparison like this. I think you should start making videos of how are you relating with real life. A different perspective which will be very cool to know

    • @exe.m1dn1ght
      @exe.m1dn1ght Год назад

      @@ankurbassi2667 i had a very wrong perspective about this, i figured out its just instructions, like the ones you read on a cooking recipe. I am so happy i fixed my problem, it was all about how i see it. Anyway this dude didnt even helped me at all

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

    best

  • @dmytro.pyvovarenko
    @dmytro.pyvovarenko 11 месяцев назад

    cudo!

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

    sosote rocafuerte

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

      gracias!!