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

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

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

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

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

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

      why is it relevant?

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

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

    • @ffy291
      @ffy291 22 дня назад

      @@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

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

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

  • @aidanahram8245
    @aidanahram8245 Месяц назад +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 25 дней назад

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

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

    thats smart

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

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

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

    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.

  • @sajinreyans3329
    @sajinreyans3329 24 дня назад

    What is the use of longest =0 variable

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

    Hurray

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

    W Fellow right here

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

    Very clean ❤❤

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

    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

  • @chungt6545
    @chungt6545 7 месяцев назад +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 7 месяцев назад

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

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

      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 5 месяцев назад

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

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

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

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

      ​@@chungt6545 ur welcome 🙏🏻

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

    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!