Sliding Window Technique - Algorithmic Mental Models

Поделиться
HTML-код
  • Опубликовано: 14 июл 2024
  • Please support me on Patreon: / thesimpleengineer
    / thesimpengineer / schachte
    ryan-schachte.com
    Don't forget to subscribe! Code:
    gist.github.com/Schachte/87d7...
    In this video, we'll begin our series of algorithmic mental models and cover the idea behind the sliding window technique. This technique allows us to reduce a typical n^2 algorithm to a linear time algorithm with minimal effort. This exploits linear time optimizations on data structures that deal with iteration and group sequential pieces of data together.
    More resources:
    / sliding-window-technique
    thesimpleengineer.com
    stackoverflow.com/questions/8...
    Timestamps
    00:00 Welcome
    8:25 Maximum sum of contiguous subarray of size 3.
    16:35 Question variants
    24:50 Dynamic variant. Smallest subarray with given sum.
    27:45 Smallest subarray code start
    32:48 Smallest subarray solution
    33:20 Longest substring with length k distinct characters

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

  • @omkarpat
    @omkarpat 4 года назад +554

    One of the best explanations of this concept. Please make some more "Algorithmic Mental Models" based videos.

    • @CEOofTheHood
      @CEOofTheHood 3 года назад +22

      dude u seriously need to make more of these. Ill pay for them.

    • @andrewblaines
      @andrewblaines 3 года назад +16

      Agreed! These are great. More "Algorithmic Mental Models" for dynamic programming, backtracking, etc. would be extremely helpful.
      Thanks for the video!

    • @veliea5160
      @veliea5160 3 года назад +9

      it is not one of the best, it is the best

    • @Mogwai88
      @Mogwai88 3 года назад

      @@CEOofTheHood Yes. Please make more of these. Especially with your new freecodecamp traffic this would really take off.

  • @jacktrainer4387
    @jacktrainer4387 3 года назад +181

    I've never before seen a CS video that approached CS like math (i.e., here are the concepts, here are some keywords to look out for so you know when to apply these concepts, here are a few examples). The world needs 1,000 more videos like this (DP, Linked Lists, Trees, Graphs, etc). Fantastic work!

  • @DonMamaril
    @DonMamaril 4 года назад +7

    I loved, looooved the format of this! Please continue to do these videos. Extremely helpful!!

  • @VRtualboy
    @VRtualboy 4 года назад

    I love this format, thank you for putting this together. Keep them coming!

  • @neerajkulkarni6506
    @neerajkulkarni6506 3 года назад +7

    This is fantastic! Please make more of these 'mental model' videos. There too many videos out there that jump straight to the solution without any discussion of how to approach and generalize a problem. We need more video's like this!

  • @dr_920
    @dr_920 4 года назад +9

    One of the best tutorials I have even seen. Thanks.

  • @svdfxd
    @svdfxd 5 лет назад +6

    One of the The best videos to explain Sliding windows concept. Request you to make other such videos that will help in tech interviews.

  • @rozikrazimator
    @rozikrazimator 2 года назад +1

    Thank you, Ryan! Your explanation and visuals are simply great.

  • @sujityadawad
    @sujityadawad 4 года назад +9

    Was struggling a lot with sliding window problems earlier, your explanation really simplified those problems. I really appreciate your effort. Thank you! Please post more videos.

  • @maxdrojjin6984
    @maxdrojjin6984 5 лет назад +82

    This is really the best video (or any, really) explanation of the topic I have found. Really hope this would become more popular. Thank you!

  • @williamahern6219
    @williamahern6219 2 года назад

    This is an awesome, thorough explanation of the sliding window concept and is easy to follow!

  • @alphapenguin9748
    @alphapenguin9748 4 года назад +3

    Please make more algorithm videos, you're literally the best explainer I have found on youtube.

  • @NayanaABREU
    @NayanaABREU 4 года назад

    Thank you so much! I finally understood "Sliding Window" technique.

  • @adeelzafar3299
    @adeelzafar3299 4 года назад +1

    Thanks for the super explanation dude. I really appreciate the amount of work you put into this video for us'all. Thanks again!

  • @sarthakrege269
    @sarthakrege269 3 года назад

    This is the best video I have ever seen on an algorithmic topic!! Please make more content like this!! Love the idea of the algorithmic mental model! :))

  • @akhalil3482
    @akhalil3482 2 года назад +1

    we need more of this series! please do more!

  • @frozen_tortus
    @frozen_tortus 4 года назад +4

    I'm absolutelly blown away how this is explained.

  • @uzvalmallepeddi8962
    @uzvalmallepeddi8962 2 года назад +12

    I wouldn’t resist to pay a 1000$ to watch such videos. Brilliant piece of work! Hope you do more videos on “Mental models”

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

    Great guy. I was hesitant to watch the whole video but you were so informative that I actually learned something for many use cases. Thanks

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

    This is -by far- the best video on this topic I have seen. Thanks for taking the time to produce such a great content. Keep it up!

  • @omaryahia
    @omaryahia 2 года назад

    a simple visual explanation,
    detailed, with variants
    this is amazing, thank you

  • @kirtzicdeng5736
    @kirtzicdeng5736 3 года назад

    Best sliding window video ever! Thank you so much! Your implementation is so elegant too. Please make more videos to cover more topics, like DP, backtracking, prefix sum, etc

  • @jx3751
    @jx3751 4 года назад

    Excellent explanation. The animations really drove it home.

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

    Hands down the best explanation of the Sliding Window technique. Please do more algorithmic mental model videos!

  • @SheikhEddy
    @SheikhEddy 3 года назад

    Please make more videos like this, it's one of the best things I've seen on youtube

  • @Shiva-zy7jq
    @Shiva-zy7jq 4 года назад

    Best video on youtube about sliding window technique. Thank you so much.

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

    This is the best explanation on Sliding Window I have seen so far. Thank you for the detailed yet simple approach to explaining the concept.

  • @cocoarecords
    @cocoarecords 3 года назад +1

    wow this deserve to be a series very underrated!

  • @alonbrim
    @alonbrim 2 года назад +1

    This video is pure gold!!! Great explanation . Everything is very clear. Thank you very much!

  • @arnobchowdhury9641
    @arnobchowdhury9641 3 года назад

    Great explanation and thanks a lot. The way you visualized really helped to understand the concept.

  • @MrAlmas01kz
    @MrAlmas01kz 2 года назад +1

    One of the best and easy explanations of this concept. thank you so much !

  • @Ore00000
    @Ore00000 3 года назад

    I greatly appreciate the clear explanation of the dynamically resizable sliding window, it cleared up some doubts I have about the algorithm. Cheers!

  • @prashanttoxeed
    @prashanttoxeed 4 года назад

    Hands down the best explanation. Subscribed. Keep posting.

  • @abhigyanchatterjee
    @abhigyanchatterjee 4 года назад

    Superb work. This is truly the best explanation I have found in the web. I really hope you make more such videos

  • @nehajhawar411
    @nehajhawar411 4 года назад

    Amazing video. I have never heard of this algorithm before and now I can use it. Thanks a lot. Will stay tuned for more videos :)

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

    Rewatched some parts of it. Perfect, breathtaking. The best tutorial ever.

  • @TheDev05
    @TheDev05 2 года назад +1

    The animation for second technique: dynamic SW is just awesome, I loved it

  • @silvahawk
    @silvahawk 3 года назад +5

    I have always been calculating the first windowSum in a separate loop before starting to "move" the window in a separate loop. I never knew you could do both within the same loop without using a nested loop. This is amazing!

  • @SuckBoot
    @SuckBoot 4 года назад

    Amazing instruction. Not a single word was wasted. I’m only halfway through and had to comment already! Please make more algorithm videos! :-)

  • @potatocoder5090
    @potatocoder5090 Год назад +6

    I have struggled with this concept for a really long time, but not anymore :) Your explanations were absolutely beautiful and I'm excited to solve some sliding window problems now! Can you please create more Algorithmic Mental Model videos? We'd all be super grateful!

  • @shrey4489
    @shrey4489 2 года назад +3

    Great explanation! I'm a visual learner and I can see myself imagining these sliding window animations when I face array problems like this in the future.

  • @shuvbhowmickbestin
    @shuvbhowmickbestin 2 года назад +1

    what a comprehensive video! Learnt a lot, liked and subbed. Keep bringing new content, you teach really good!

  • @sureshputta2374
    @sureshputta2374 4 года назад

    Great explanation and right format for learning new things, Thank you so much

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

    first vid i see on this channel and its wonderful. good job!

  • @wintersol9921
    @wintersol9921 2 года назад

    Thanks a lot, great explanation. I have been looking for RUclipsrs like you all the time, good explanations with good content :D

  • @islamegy
    @islamegy 4 года назад

    This is really high qulity content, detailed explaination and very well presented. Hope you make more content like this. cheers

  • @VarunVermaUSC
    @VarunVermaUSC 4 года назад

    Great content. I like how you focused on approach and technique towards problem solving, rather than just providing the code.

  • @wittyhumour29
    @wittyhumour29 3 года назад

    Amazing explanation of the Sliding-Window Technique. Would love to see more of Algorithmic Mental Models.

  • @arunponnusamy9187
    @arunponnusamy9187 4 года назад

    Clear simple explanation, very easy to follow, thank you !!

  • @syedaffanhameed14
    @syedaffanhameed14 2 года назад +1

    I found "Algorithmic mental models" is a great concept for solving problems please bring more videos like this.

  • @dilipkumar2k6
    @dilipkumar2k6 3 года назад

    The best video on the sliding window I have seen so far. You made my day/future :-)

  • @ethanwu7338
    @ethanwu7338 2 года назад

    Dude, thank you so much for making those videos!

  • @viralmehta2542
    @viralmehta2542 3 года назад

    Great explanation for the problems! Code is concise!

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

    Thank you @Ryan Schachte for clarifying the sliding window technique and make it so simple just like that.
    I hope you upload a lot more vids like this bro !

  • @sivanyaniv64
    @sivanyaniv64 2 года назад

    this is the best video I was watching about sliding window - thank you !!

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

    Best explanation so far. Thank you

  • @divyanirao4279
    @divyanirao4279 4 года назад +38

    This video is amazing. hope you make more videos on "mental models" such as for dynamic programming.

    • @michadobrzanski2194
      @michadobrzanski2194 2 года назад

      Max subarray sum of k is also a dynamic programming problem. You reuse the previous max result and update it. So it is like dynamic programming with space complexity O(1).

  • @shriduttkothari
    @shriduttkothari 2 года назад +4

    This is the only video which made me understand dynamic window sizing algorithm... Thank you so much 🥰

  • @paulengland8983
    @paulengland8983 4 года назад +1

    More of this -- this was fantastic.

  • @TechieIndia
    @TechieIndia 4 года назад

    the best lecture available on any platform for SWT.
    I loved this video and your way of explanation.

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

    dude I am only 2 minutes in and I've liked and subscribed! Between the visuals and your consice explanations, the sliding window technique (which I never thought I'd understand) makes SO MUCH SENSE! Thanks so much :)

  • @harshitmittal1217
    @harshitmittal1217 4 года назад

    Literally the best explanation of sliding window technique.

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

    I've really struggled visualizing this algorithm concept and this video is extremely intuitive and detailed. Would love to have more of these videos.

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

    Thanks you with tear. You constructed a solid framework for handling sliding window in my head.

  • @pial2461
    @pial2461 4 года назад +1

    Saved my day, man! Thanks a lot

  • @weijinghuang8518
    @weijinghuang8518 2 года назад +1

    This is the best video I've ever seen on this topic "sliding window"! It does not only solve one or two interview questions for me but also solves a group of problems. More than that, it teaches me how to spot this group of problems. Fantastic!!!

  • @GoblinBlaster3000
    @GoblinBlaster3000 2 года назад

    Great explanation, didn't know anything about sliding window before this video and I got enough information where I could implement it no problem.

  • @tusharborole6155
    @tusharborole6155 5 лет назад +1

    Best explanation so far

  • @abenakn
    @abenakn 4 года назад

    This video finally cleared the cobwebs for me. Fantastic job explaining this!

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

    Nice video! Banger as a refresher for interviews.

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

    Please make more of these! This was so helpful thank you.

  • @soucianceeqdamrashti8175
    @soucianceeqdamrashti8175 4 года назад +1

    Very well explained. Keep it up!

  • @rahulsbhatt
    @rahulsbhatt 3 года назад

    What a beautiful animation, thank you so much ❤️🙏

  • @yasirayaz7832
    @yasirayaz7832 2 года назад

    Nice explanation. I am glad I landed here while searching for all possible solutions for solving the array problems

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

    A series of algorithmic mental models would be awesome, great work!

  • @B-Billy
    @B-Billy 4 месяца назад

    Hand down, the best explanation. Great work🎉 thank you❤

  • @ibrahimhegazi3955
    @ibrahimhegazi3955 7 дней назад

    You might be a professor or a normal student, but your explanation skills are exceptional. Add to that most of the videos explaining algorithms do not include such an amazing visualization for the data structures that we are working with. I hope one day you will have the free time to make a full algorithms and data structures for competitive programming course with such an amazing visualization. Hope you the best sir whereever you are.

  • @parthabhowmik4747
    @parthabhowmik4747 2 года назад +2

    The best lecture on sliding window technique

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

    I like that you actually name your variables in a meaningful way. 👍

  • @stacy623
    @stacy623 3 года назад

    Thanks for the great explanation! Please post more patterns to ace coding interviews!
    This one was really helpful!

  • @pbard42
    @pbard42 2 года назад

    Wow great explanation, love the ‘teach a man to fish’ approach to the algorithm problems!

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

    After watching this one, I could solve even the hard LC problems within 15-20 mins. This is a gem of a video on this topic. Hope you make more of these on other topics, I will literally pay for it

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

    Great explanation. It really helped me to fully understand

  • @RenanHiramatsu
    @RenanHiramatsu 3 года назад

    The best explanation I've ever seen, tysm.

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

    Only 219k views... no way. This is by far some of the best CS-related content on RUclips, hands down. Amazing!!

  • @user-mq8dn1pv3v
    @user-mq8dn1pv3v 7 месяцев назад

    very declariative and well explained , thanks

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

    What an excellent, well paced, well explained video with explaining the theory but also showing it in examples
    THANK YOU!
    The more you research the more you come to understand that trying to solve all these problems individually with out knowing about techniques like these, is so painful lol

  • @maidul13
    @maidul13 4 года назад +2

    wow, this is amazing. thank you so much

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

    This is amazing. I wish I could hug you for this best explainantion. I learned a lot.

  • @ashleypean
    @ashleypean 2 года назад

    Dude this is so good!

  • @WholeNewLevel2018
    @WholeNewLevel2018 3 года назад

    Amazing explanation, I like your code implementing clean and concise

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

    I love the idea of "Algorithmic Mental Models"! Thank you so much for explaining this perfectly and I'd love to see more videos for this idea!

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

    Thank you so much for this video, I helped me a lot to understand this concept better.

  • @sheffieldk.408
    @sheffieldk.408 2 года назад

    Excellent video!

  • @CantBeTamed53
    @CantBeTamed53 2 года назад

    Great use of graphics to explain the algorithm! :D

  • @findMeOnYoutube350
    @findMeOnYoutube350 4 года назад +1

    You are one of the best online tutor Man, I really appreciate it. Thanks for your contribution. Subscribed :)

  • @tarungopal3065
    @tarungopal3065 4 года назад

    Explaind the Topic in an easy manner .Enjoyed the vedio and Found Really Helpful.

  • @fahadhayat_
    @fahadhayat_ 3 года назад +10

    Dude please create a playlist for the other techniques as well!!! This is gold!

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

      Does he have a playlist for this?

  • @ilanaizelman3993
    @ilanaizelman3993 2 года назад

    This is GOLD!
    Thanks alot!!!

  • @amitrajitdas31
    @amitrajitdas31 2 года назад

    One of the best explanation on YT