Sparse Table Data Structure

Поділитися
Вставка
  • Опубліковано 5 жов 2024

КОМЕНТАРІ • 53

  • @thunderbolt8632
    @thunderbolt8632 4 роки тому +20

    William tu to devta nikla re! Awesome 🔥

  • @alex85354
    @alex85354 3 роки тому +7

    Shoutout to William and folks who contributed to this fantastic video.
    That being said, it's really a bummer that we're missing a video about a segment tree. Fenwick tree and Sparse table have its own advantages to select as primary datastructures, but when you need a point update for RMQ, then we definitely need to turn our heads to a segment tree :( The fact that other online sources aren't as easy to consume knowledge as your video, it would be much appreciated if you could make one in future!

    • @madhukiranattivilli2321
      @madhukiranattivilli2321 3 роки тому +1

      What's RMQ? Range Min Query (or Range Max Query)?
      William Fiset says Fenwick Tree Point Update runs in O(log2(n)). Not good enough? Does a Segment Tree runs faster than this?
      I'm yet to learn about Segment Trees
      Please reply

  • @ankitsinha9019
    @ankitsinha9019 3 роки тому +3

    In first 2-3 minute u realize ur at right place for ur concept... awesome video:)

  • @daumtto
    @daumtto Рік тому

    Thank you william from South Korea!! Please do not remove these awsome videos. It really helped me a lot and helping me now. You make complicated things easy. I thank you again.!!

  • @dotproduct763
    @dotproduct763 4 роки тому +7

    Amazing explanation! I'm finally at peace with this concept 👌

  • @joydeepbhattacharjee3849
    @joydeepbhattacharjee3849 4 роки тому +3

    at 13:03 the equation of len should be len = r - l + 1 since r > l.

  • @jaatharsh
    @jaatharsh 4 роки тому +2

    WOAH this is really awesome, I appreciate the hard work put behind creating such top-notch quality content.
    your explanation is amazing William, please do keep posting such video's.

  • @isaiasramirez7071
    @isaiasramirez7071 4 роки тому +1

    This is pure gold William, thank you for such a great content. I've been struggling with an advanced problem in Hackerrank and your video series about trees just pointed me to the right direction. :D

  • @arsilvyfish11
    @arsilvyfish11 2 роки тому

    Amazing explanantion, was really helpful, thank you to William and the other collaborators!

  • @youngjim7987
    @youngjim7987 2 роки тому

    amazing presentation. I prefer first to watch some videos like these to grip the high-level idea and read the book to dive deeper.

  • @uchennanwanyanwu2777
    @uchennanwanyanwu2777 4 роки тому +3

    Thanks for the video. Finally, there's a good tutorial on Sparse tables. In your opinion, would you choose Sparse table over Segment trees

    • @WilliamFiset-videos
      @WilliamFiset-videos  4 роки тому +6

      It depends. Sparse tables are great for fast range queries (although you do need nlogn memory). However, as soon as you need to be able to do any kind of point update or range update a segment tree is a good choice.

  • @arthurtapper1092
    @arthurtapper1092 3 роки тому +1

    You should really bring the volume for your voice up, either via directly speaking to microphone louder or post processing as I have you turned up to 100% and if the room isn't completely quiet I cant hear you. If i play a song off of youtube at 5% it drowns you out even when your at 100% . Other than that great videos!

  • @flyingtiger123
    @flyingtiger123 5 місяців тому

    Fantastic video, concept well explained🎉🎉

  • @ShubhamJoshishubhamjoshi
    @ShubhamJoshishubhamjoshi 4 роки тому

    Great explanation William . Can you post some videos on string matching algorithms also.

  • @JWong-hh5sr
    @JWong-hh5sr 4 роки тому

    Great video! Very clear and concise!

  • @ShreyasNimishe
    @ShreyasNimishe 4 роки тому

    very clear and concise!

  • @jeevan999able
    @jeevan999able 3 роки тому

    Thank you for the great explaination

  • @shameekagarwal4872
    @shameekagarwal4872 4 роки тому +2

    why will i want to use a sparse table for functions without good overlap??
    i can use segment tree...

  • @shikharsaxena9989
    @shikharsaxena9989 4 роки тому +1

    why i+(1

  • @張機智
    @張機智 3 роки тому

    Thank you for the explanation

  • @lucien5112
    @lucien5112 2 роки тому

    19:35 What happens with i is odd, and i/2 is a non-integer index of array log2

  • @ilyam1425
    @ilyam1425 2 місяці тому

    may be im stupid, but im not quite understand the idea. white, blue, intervals, subintervals. feels like author explain it to himself. not all people understand this, if they not reading Knuth

  • @BerArchegas
    @BerArchegas 2 роки тому

    Amazing video

  • @HelloWorld-tn1tl
    @HelloWorld-tn1tl 3 роки тому

    So, the time complexity is O(log(n)), and space complexity is O(n*log(n)) ?

  • @mohitjaiswal5113
    @mohitjaiswal5113 4 роки тому

    ThankYou so much for this !!

  • @ankitchoudhary197
    @ankitchoudhary197 5 місяців тому

    wonderful

  • @netional5154
    @netional5154 4 роки тому

    Thanks for the great video. At 15:25 the last segment goes to 16. I think it's an error.

    • @WilliamFiset-videos
      @WilliamFiset-videos  4 роки тому

      Hi Netional, I think 15:25 is ok. I'm using the "half closed interval" notation [a, b) where a is inclusive, but b is not. Maybe I should have been more clear about that. As an example, the interval [3, 6) would mean {3, 4, 5}, not {3, 4, 5, 6}, and [4, 5) would just be: {4}

    • @netional5154
      @netional5154 4 роки тому

      @@WilliamFiset-videos ah, I understand.

  • @mohammadyahya78
    @mohammadyahya78 2 роки тому

    Thank you William. How did you compute last row at 16:00 please? I see that first element should be 2*-6*-6= -12*-6 = 72, but you wrote -12, why?

    • @WilliamFiset-videos
      @WilliamFiset-videos  2 роки тому

      I computed -12 from the row above it from the cells at (row 1, col 0) and (row 1 col 2) for 2 * -6 = -12.

  • @bismeetsingh352
    @bismeetsingh352 4 роки тому

    Didnt understand how the table was constructed at 9:27

  • @boomboom-9451
    @boomboom-9451 Рік тому

    Why not using idempotency instead of overlap friendly term

    • @mersenne2486
      @mersenne2486 6 місяців тому +1

      not everyone is a boomer like you

  • @HimanshuDagar-kr7ct
    @HimanshuDagar-kr7ct Рік тому

    Just Wow!

  • @sahilguleria5505
    @sahilguleria5505 4 роки тому

    In CascadingMinQuery(), for product example where we have to find product of all elements between [0,6]. In first iteration of for loop we will have [0, 0 + 2^2) in next iteration it will be [4, 4 + 2^2) which should be [4, 4 + 2^1) as discussed in product range query example.
    We will not be having the t[2][4] in sparse table. Then how to check that in the function

    • @WilliamFiset-videos
      @WilliamFiset-videos  4 роки тому

      Notice that the cascading query function starts with the largest interval which is a power of 2.

    • @sahilguleria5505
      @sahilguleria5505 4 роки тому

      Got it my bad

  • @naviesometimes9417
    @naviesometimes9417 4 роки тому

    It's very helpful

  • @l3zhang392
    @l3zhang392 Рік тому

    at 12:58, it should be len = R - L + 1 = 11 - 1 + 1, or?

  • @mersenne2486
    @mersenne2486 6 місяців тому

    awesome

  • @fdshdsfdsqq
    @fdshdsfdsqq 10 місяців тому

    ty!

  • @prasannathapa1024
    @prasannathapa1024 3 роки тому

    this is the best

  • @algorithmimplementer415
    @algorithmimplementer415 4 роки тому

    Volume is very low!

  • @sourav_ghosh
    @sourav_ghosh 4 роки тому

    What if the array is not static? Can we use sparse table?

    • @sivaramd5637
      @sivaramd5637 4 роки тому +1

      No, If the array is not static we need to update the sparse table which will take O(NlogN) time so, instead, you can use Fenwick tree or Segment tree (which takes only O(logN) time)

  • @abhigupta6681
    @abhigupta6681 4 роки тому

    Thanks for the tutorial. Can you please make video on lca queries as well?

  • @vaibhavkumar6796
    @vaibhavkumar6796 2 роки тому

    Dude the volume is so low

  • @surajkulriya8536
    @surajkulriya8536 4 роки тому

    great