Longest Consecutive Sequence - Leetcode 128 - Hashmaps & Sets (Python)

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

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

  • @GregHogg
    @GregHogg  4 месяца назад +6

    IMPORTANT FIX - WE SHOULD LOOP THROUGH THE SET S AND NOT NUMS ON LINE 5!!!

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

      why is it relevant?

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

      @@orlanduca2567I think it’s because looping through the set allows for skipping any duplicates in nums, which would improve the performance.

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

      @@orlanduca2567 skipping over duplicates. If not: if the start of a seq is a duplicated that exist k times you would check the seq k times which would bring you time up drasticlly

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

      @@orlanduca2567I tested the same code looping through the list and it took 434ms but looping through the set, which doesn’t have repeated numbers, took only 17ms.

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

    This is O(n^2) because for each value in the set, you are finding the longest sequence that starts with that value. For example [1, 2, 3, 4, 5], it will find count 5, then 4, ..., to 1. Before you start the inside while loop you must check that it is the start of the sequence by making sure that the num - 1 isn't in the set. If its not in the set then start checking num + 1

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

      checking for the existence of a value in a set takes O(1) time. That's why we are using the set.

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

    Interesting, my thought would be to remove elements from the set each time it was part of a sequence. Yours is likely more elegant since it doesn't mutate the set.

  • @JoeTan-nq4fq
    @JoeTan-nq4fq Месяц назад

    Awesome solution

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

    Very clean ❤❤

  • @lautarortega
    @lautarortega Месяц назад +1

    Does the set creation itself not count as an O(n) operation? You would need to iterate through all elements of the list to construct it. Then, you would be iterating over the elements twice, being O(n**2).
    Edit: Sorry, it would be O(2n), right? And the notation simplifies to O(n).

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

    Master Data Structures & Algorithms For FREE at AlgoMap.io!

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

    W Fellow right here

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

    Hurray

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

    thats smart

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

    Thank you for the explanation.
    I'm not sure if I understand it correctly, but I think the time complexity is not O(n) but O(n^2), since we have 2 loops.
    The while loop makes the solution O(nk), where k is the average consecutive sequence's length. In the worst case, it's O(n^2), when all n elements construct an n-length consecutive sequence.
    How do you think?

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

      My Thoughts exactly,
      I mean there are two loops in there

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

      That's wrong , it is O(n) because you are iterating over each element exactly once . The worst case you are talking about is not O( n^2) it is O(n + n ) since you will run over all the elements once you reach the min of the sequence , but after that , every other element will have the element before already in the set , thus won't enter the 2nd loop.
      Hope this explains it.

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

      @@mohammadhammoud6531 it is O(n), not O(n^2)

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

      @@mohammadhammoud6531 I think I got it finally. Thank you!

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

      ​@@chungt6545 ur welcome 🙏🏻

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

    What is the use of longest =0 variable

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

    Very nicely done. You should be a college professor but most of them are cocky bastards anyway.

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

    Holy cow! Aren't there Sr SE who'd architect the software? Why make us do things like this. I know people who never majored in CS and are Software Engineers. Unbelievable

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

    Prof Singh Gupta. First day of class. Hi students! Are you smarter than me? If not you'll be in hell in my class. If you are you can be my student. What the f!