Solving Amazon's 2024 Most Asked Coding Question

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

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

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

    Good explanation, although it would've been good to clarify that it's not pointers moving backwards that allow us to skip most iterations from the bruteforce solution, but rather sliding window algorithm itself. You can reverse the solution and it would work perfectly as well - pointers go from left to right, but you do substrings from right to left (imo it would be a bit more intuitive to those already familiar with sliding window algorithm).
    You can even use something like ".endsWith(invalid[i])", though it would make time complexity a O(n*m*k), where k is length of the invalid array so with given constraints it would be worse, but generally might be better/same time complexity

  • @adilansari-hq9ge
    @adilansari-hq9ge 3 месяца назад +1

    Awesome Video. I have been missing your videos Michel, please keep uploading.

  • @LunaticZombie
    @LunaticZombie 10 дней назад

    Could you plz check following case:
    Forbidden=[de, le, e, mp]
    word=leetcodmpe
    Algo in video would give tcod as answer, but answer should be tcodm
    Am I missing something?
    Basically, thinking about matching substring of more than 1 length..

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

    Hey Michael this was a great video and I really appreciate it. Could you please provide the link for the list of questions you got this question from. you showed the page briefly at the 0:07 sec mark. the link to all questions by amazon in 2024 would be very helpful

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

    I love the way you explain these problems.

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

    Explained great 👏👏👏

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

    Hi Michael, that’s a great explanation, though I noticed a small correction needed for your time complexity calculation.
    You forgot to include `invalid.contains(substring)`, which has a complexity of O(K) in this case (where K is 10^5, the length of the forbidden substring).
    So, the corrected time complexity is:
    O(N) {
    O(M) {
    O(M) + O(K)
    }
    }
    Thus, the total time complexity is O(N * M * (M + K)), or more succinctly, O(N * M^2 * MK).
    Hope this helps clarify! 😊

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

      "invalid" is a hash map so I assume time complexity for it would be O(1)