LeetCode Rotate Array Solution Explained - Java

Sdílet
Vložit
  • čas přidán 8. 09. 2019
  • The Best Place To Learn Anything Coding Related - bit.ly/3MFZLIZ
    Join my free exclusive community built to empower programmers! - www.skool.com/software-develo...
    Preparing For Your Coding Interviews? Use These Resources
    --------------------
    (My Course) Data Structures & Algorithms for Coding Interviews - thedailybyte.dev/courses/nick
    AlgoCademy - algocademy.com/?referral=nick...
    Daily Coding Interview Questions - bit.ly/3xw1Sqz
    10% Off Of The Best Web Hosting! - hostinger.com/nickwhite
    Follow My Twitter - / nicholaswwhite
    Follow My Instagram - / nickwwhite
    Other Social Media
    ----------------------------------------------
    Discord - / discord
    Twitch - / nickwhitettv
    TikTok - / nickwhitetiktok
    LinkedIn - / nicholas-w-white
    Show Support
    ------------------------------------------------------------------------------
    Patreon - / nick_white
    PayPal - paypal.me/nickwwhite?locale.x...
    Become A Member - / @nickwhite
    #coding #programming #softwareengineering
  • Věda a technologie

Komentáře • 194

  • @shreejitnair2174
    @shreejitnair2174 Před 4 lety +208

    That was very important advice not to spend hours trying to crack something. Seen so many folks spending hours as if this is a life and death situation burn hours and barely solve a few problems in a month. Look at the solutions if you can't crack it, digest and move on. The more problems and patterns one can digest would help you solve some unseen problem on the interview.

    • @kushagraahire1871
      @kushagraahire1871 Před 2 lety +4

      my friend wasted 5 days on a problem , eventually ended up looking at the solution

    • @AshutoshKumar-es8xy
      @AshutoshKumar-es8xy Před 2 lety +3

      I solved the add two numbers for a month.

    • @samuelvalentine7846
      @samuelvalentine7846 Před rokem +3

      two years later, your comment just made me realize something i have been struggling with for 5 years.. I guess you can try for sometime, if you don't get it, look at the solution, understand it very well and you will remember the patterns without even trying. And by remembering the patterns, it means you can apply it to another problem

    • @devDive615
      @devDive615 Před 10 měsíci +1

      @@kushagraahire1871 🤣🤣🤣🤣

  • @aghavvikas
    @aghavvikas Před 4 lety +145

    What you said about not stressing on problem for long is absolutely true Bruh !

    • @samuelvalentine7846
      @samuelvalentine7846 Před rokem +1

      Three years later, your comment just made me realize something i have been struggling with for 5 years.. I guess you can try for sometime, if you don't get it, look at the solution, understand it very well and you will remember the patterns without even trying. And by remembering the patternd, it means you can apply it to another problem

  • @vm1662
    @vm1662 Před 4 lety +69

    That is so true! I used to waste a lot of time on one single question but lesson learnt! I feel like I am getting better everyday. Thank you! :)

  • @samuelvalentine7846
    @samuelvalentine7846 Před rokem +4

    Three years later, your comment just made me realize something i have been struggling with for 5 years.. I guess you can try for like 20 minutes, if you don't get it, look at the solution, understand it very well and you will remember the patterns without even trying. And by remembering the patterns, it means you can apply it to another problem. It is not a matter of life and death.. It comes from practice.. Hopefully, i will get there someday

  • @CCV334
    @CCV334 Před 4 lety +15

    I wish there was a resource available for learning these "tools" then another section devoted to practicing these tools building on your knowledge.

  • @Rohan004
    @Rohan004 Před rokem +2

    Exactly! I used to spend an enormous amount of time on a single question, but I've grown from that. I truly feel like I'm becoming better with each passing day. Thank you for everything!

  • @sunnysrivastav2470
    @sunnysrivastav2470 Před 3 lety +5

    Thanks a lot for making this video Nick. I just marked it down - "If you are struggling with a problem more than 20 or 30 mins , you are wasting you time ." It's a lesson worth noting down. Thanks :)

  • @farizma
    @farizma Před 3 lety +1

    I really needed to hear these words after this problem, I really felt down. Thanks Nick.

  • @ruthylevi9804
    @ruthylevi9804 Před 2 lety +1

    you are my absolute favorite youtuber to watch while studying for tech interviews

  • @divyanshuchaudhari5416
    @divyanshuchaudhari5416 Před 3 lety +1

    Thanks man, this video did change my outlook on how to solve problems in general.

  • @alexshiferaw7180
    @alexshiferaw7180 Před 4 lety

    Bro I was trying to do this problem before looking at the solution for about hour and half and what you said at he beginning make since so much. Thank you.

  • @ankit2056
    @ankit2056 Před 3 lety +1

    Came for the explanation of the problem, but stayed for the advice! Thanks Nick!

  • @dangereuxdave
    @dangereuxdave Před 2 lety +1

    I spent two days on this problem before finding this video.
    At the time, I was telling myself that if I skipped the struggle, I'd be missing out on a valuable learning experience. It was still fun, for a bit.
    This is what I have learnt:
    Sometimes, you can cheat yourself by _not_ looking at the solution.
    Like others and yourself have said, the people who originally came up with these tricks may have worked for much longer or been lucky to spot them.
    But more importantly, I think skipping to the solution can sometimes impart other useful lessons, such as that sometimes the answer is a trick, or that there's a radically different way of thinking about things. And that's valuable.
    It's not like you just come away from reading a solution only knowing the solution. Sometimes it also imparts nuggets of insight and wisdom beyond the immediate answer to the problem.

  • @savantdude
    @savantdude Před 4 lety +4

    thank you for the great advice, Nick! I wasted many hours on this problem trying to come up with an O(n) and eventually exasperated looked at the solution LOL! Do you think a problem like this would come up in an interview where the optimal solution involves knowing a trick that can't found out in a 1-hour interview? Another example would be the one that involves using Kadane's algorithm... I would appreciate your views on this.

  • @biscottigelato8574
    @biscottigelato8574 Před 4 lety +6

    I agree with ya. It's sad on the state of things. Basically instead of working for your employer doing real work, people are secretly burning themselves out to memorize these 'tricks' to go for that next employer. And go in to an interview for a lottery and hope that it's a 'trick' you have memorized and applicable to the problem of the day. It's basically a lose-lose situation. As a current employer you lose, and as an employee seeking mobility you lose. Your future employer feels smug putting you through the ringer, until secretly productive drops to nothing because their current employee is also wasting his/her life studying and memorizing tricks. It's a vicious cycle.
    It'd make too much sense if prospective employers actually look for skills that you'd build up in an actual day to day job. The skills that'd actually help them in their business day to day. Nope, makes way too much sense. Can't do.
    I have used BFS/DFS Zero times in my career as both 9 years of C Firmware Engineer and 4 years of iOS engineer. The concept itself can be picked up when needed in 10 minutes. And does not need trick questions to proof understanding. Yet people and grilled for perfection in applying them to all sorts of 'trick' questions. What for?

  • @hackernight5110
    @hackernight5110 Před 4 lety +2

    Thnks nick , you are an inspiration to overcome my fear from DS & Algo ...Awesome

  • @amogh_wagh
    @amogh_wagh Před 3 lety +2

    My left ear understood the solution really well. Thank you!

  • @jamesmiller2521
    @jamesmiller2521 Před 4 lety +17

    You're right. The answer is always so easy to understand! And I always feel myself as a total dumbass for not solving it myself 😂

    • @shusenacademy
      @shusenacademy Před 4 lety +2

      Obviously, you are not the only dumbass :(

  • @AbhinavKumar-dr4ef
    @AbhinavKumar-dr4ef Před 2 lety +1

    True I spent hours thinking, my ego always comes like I can solve this easy problem without taking any hint. We cannot spend time like this. We do not need to mug up this particular problem rather than we have to understand the concept which will help in solving any problems like this or we can use this concept where it can be useful. It's ok to take a bit of a hint to train our minds. Thank you Nick for your advice.

  • @Dyslexic_Neuron
    @Dyslexic_Neuron Před 4 lety

    True man ....u tell everything that we all go through while solving the problem

  • @umabharati9911
    @umabharati9911 Před 4 lety +5

    Nick, you are such an inspiration! I spent nearly 2 hours figuring it out but in vain. What you said is absolutely right. It is ok to fail and look at the solution sometimes. We can't be correct always. Thank you so much :)

  • @prateek8211
    @prateek8211 Před 2 lety +2

    Today I learned a great life lesson. Thank you so much man

  • @nilanjanmukhopadhyay8369
    @nilanjanmukhopadhyay8369 Před 4 lety +1

    Hey Nick I think the juggling algorithm would be more efficient for doing this rotation. What is your thought about it?

  • @gregorywilson2124
    @gregorywilson2124 Před 2 lety

    Very practical advice on cracking theses tech interviews. It begs the question about the value of these interviews.

  • @user-ig2kt4jp8i
    @user-ig2kt4jp8i Před 10 měsíci

    Nick I loved the rant. I was on this question for two hours trying to figure it out. You really just called me out lol

  • @savvy9431
    @savvy9431 Před 4 lety +2

    ~The Much Needed advice~
    *We just learn things!!!!!!!!!!!!!!*
    People are always stressing about how you shouldn't look at the solution and try to solve it yourself ,but no one gives this advice
    we arent Einstein. Thanks Nick

  • @rajeshseptember09
    @rajeshseptember09 Před 9 měsíci

    Outstanding advice, Nick. Thanks for making such awesome videos.

  • @rameshshrestha9520
    @rameshshrestha9520 Před 4 lety

    He knows if we are stressed or not. Thanks bro for the help. Appreciate you.

  • @liftwithamey
    @liftwithamey Před 3 lety +1

    Thanks
    Not only for the problem
    But also for the advice
    That was so precious🙃

  • @nikhilmishra7572
    @nikhilmishra7572 Před 4 lety

    Nice rant(wisdom) at the beginning!

  • @bedsingh
    @bedsingh Před 3 lety

    Very nice and well said, I like your strategy to solve these types of problems.

  • @sweetsanch
    @sweetsanch Před 3 lety

    Great words of wisdom Nick!

  • @sivan2878
    @sivan2878 Před rokem

    You are unique and awesome bro. It's very hard to find people like you who explains complex topics in a dead easy way.

    • @ashukashyap7142
      @ashukashyap7142 Před 5 měsíci

      can anybody solve a doubt
      we are doing the changes in the reverse nums array how it is reflected to the method rotate nums array

  • @son0funiverse
    @son0funiverse Před 2 lety

    He's ending advice is really good. I only just figured it out recently, spend about 20-30 mins thinking of solution, if you can't get it. Learn it

  • @ArbaazKhan-zc3gu
    @ArbaazKhan-zc3gu Před 4 lety

    I was sitting on this question for about 2 hours. Wish I saw this video sooner. Thanks man.

  • @sachinallugani3229
    @sachinallugani3229 Před 2 lety

    thanks man for advice !! you are helping me alot.

  • @saketkumar7335
    @saketkumar7335 Před 3 lety

    Yes you are right...Some tricks should be learned and remembered and this is the knowledge base we have in our brain.Later we recall these database in our head to solve harder problems.

  • @akashbhadouria6727
    @akashbhadouria6727 Před 4 lety +1

    Thanks, Bro, much appreciated.

  • @Endlessvoidsutidos
    @Endlessvoidsutidos Před 4 lety

    awsome solution and easy to follow thanks had an O(n) solution but was like mmmmm needs to be better this was def the trick i was missing

  • @mehmetakifyegin9307
    @mehmetakifyegin9307 Před rokem

    Brilliant thank you so much for explanation and advices.

  • @top10thingwhichyoushouldkn37

    i waste my 1 hour by learning many methods but i see this method and finally i apply this method

  • @EklakDangaura
    @EklakDangaura Před 6 měsíci

    I was struggling to understand the approach. That explanation in the solution was to the point. Thanks 🙏

  • @TayiAbhignyaBCE
    @TayiAbhignyaBCE Před rokem

    Thanks for amazing explanation and important advice to solve problems

  • @vighneshk509
    @vighneshk509 Před 4 lety +2

    i would have got the algo anywhere but dude that advice was so good thanks !!

    • @ashukashyap7142
      @ashukashyap7142 Před 5 měsíci

      can anybody solve a doubt
      we are doing the changes in the reverse nums array how it is reflected to the method rotate nums array

  • @OverLordOfDa3rdWorld
    @OverLordOfDa3rdWorld Před 4 lety +1

    BROOOO THE FIRST SOLUTION BLEW MY MIND, OMG. I NEED TO BUY LEETCODE PREMIUM ASAP NO ROCKY.

  • @dipabhow4630
    @dipabhow4630 Před měsícem

    The most beautifully explained....
    Very appreciate your effort.
    Thanks.

  • @snowpants123
    @snowpants123 Před 4 lety

    Great advice nick!

  • @divyatejaswinivengada6368

    Man you are god!! much needed motivation thanks :)

  • @dipakkumarrai1442
    @dipakkumarrai1442 Před 2 lety

    That's correct. More than 20-30 mins no headway look at the solution. The way we used to solve algebra or trigonometry in high school!

  • @naveenkumardongre
    @naveenkumardongre Před 3 lety

    thanx bro ....for the advise

  • @aycanocal6506
    @aycanocal6506 Před 3 lety +1

    I can't believe how easy this is omg thank you! Saved so much time...

  • @medharawat5648
    @medharawat5648 Před 2 lety +1

    Thanks a lot for the video. How come the complexity for this is O(n+k) ? Can someone help me here ?

  • @ayanakojikiyot
    @ayanakojikiyot Před 2 lety

    You always motivate me brother.

  • @satyamgupta6030
    @satyamgupta6030 Před rokem

    very good solution brother.

  • @dsamadeeasierwithpython3628

    this(reversal algo) approach is great and easy but I am facing a hard time implementing it with the block swap algorithm.
    If anyone can explain that it will be really helpful.

  • @sanskarkaazi3830
    @sanskarkaazi3830 Před 2 lety

    Hey was k = k%nums.length kind of a check that arrray's size always stays greater than k.?

  • @rasikadandawate4721
    @rasikadandawate4721 Před 3 lety

    This is excellent...!!!

  • @ashukashyap7142
    @ashukashyap7142 Před 5 měsíci +1

    can anybody solve a doubt
    we are doing the changes in the reverse nums array how it is reflected to the method rotate nums array

  • @UnprivilegedDelhi
    @UnprivilegedDelhi Před 2 lety

    Thank you for great advise :)

  • @mrxgamer7567
    @mrxgamer7567 Před 2 lety

    Than you so much!

  • @jayasripalanisamy6838
    @jayasripalanisamy6838 Před 3 lety

    That's great! Can you put a video on juggling algorithm, please???

  • @algorithmsguide5076
    @algorithmsguide5076 Před 4 lety

    Hi Nick.. Do we need to buy leetcode premium account for solutions ?

  • @skumakerguitar8708
    @skumakerguitar8708 Před 2 lety

    nick thank brother i like way of your thinking

  • @mashak3765
    @mashak3765 Před 3 lety

    exactly my thoughts, 100% agree

  • @NitinKumar-vl3vx
    @NitinKumar-vl3vx Před 4 lety +1

    This method will take O(2n) so effectively O(n). However if we go by rotating array by single element(ie. temp = arr[0]; shift all element to left arr[i] = arr[i+1]; arr[n-1] = temp inside a for loop) and repeat it for k times ..this will be done in O(n*k) complexity. Still there is one more approach name juggler array rotate method which is the most efficient approach for rotation so far and that takes little more effort to understand. I guess people who are asking to move this problem to medium level of toughness are trying to understand juggler approach.

    • @ashukashyap7142
      @ashukashyap7142 Před 5 měsíci

      can anybody solve a doubt
      we are doing the changes in the reverse nums array how it is reflected to the method rotate nums array

  • @mrxXxkink
    @mrxXxkink Před 4 lety +1

    I literally spent a day trying to solve this

  • @SergeSergey
    @SergeSergey Před 4 lety

    Thank you but how to swithc it to the left? For example [1,2,3,4,5,6] rotated by two becomes [3,4,5,6,1,2].

  • @spidermanclips7966
    @spidermanclips7966 Před 2 lety

    thanks nick

  • @abhishektambewagh6156
    @abhishektambewagh6156 Před 2 lety

    can you explain block swap algorithm program??

  • @son0funiverse
    @son0funiverse Před 2 lety

    Lol Nick White, always finds a way to be entertaining. *Positive*

  • @shiblijamal8544
    @shiblijamal8544 Před rokem

    Man I watched you u since my clg , one day hope I will meet you legend!

    • @ashukashyap7142
      @ashukashyap7142 Před 5 měsíci

      can anybody solve a doubt
      we are doing the changes in the reverse nums array how it is reflected to the method rotate nums array

  • @nikola7377
    @nikola7377 Před 2 lety

    How is this better then allocating one more array and doing one traversal? I was thinking they do one traversal without additional array to solve it

  • @simondavis1303
    @simondavis1303 Před 9 měsíci

    I usually just do 10-20 minutes initial planning -> 10 minutes coding and editing -> 30 minutes analyzing the solution if no luck or at least close to solving it. 1 problem a day with a max of 1 hour spent.

  • @Jatin-Rohilla.
    @Jatin-Rohilla. Před 11 měsíci

    subcribed keep posting such content

  • @ramkaranmnit7280
    @ramkaranmnit7280 Před 3 lety

    i wish ur channel gets higher reach.

  • @amritasingh5632
    @amritasingh5632 Před 2 lety

    why did u take k =k%nums.length ??

  • @yagizegemen7303
    @yagizegemen7303 Před 3 lety

    I was not able understand Approach#3 given in solution on LeetCode .Any help would be appreciated.

  • @Moon-ru5ky
    @Moon-ru5ky Před 4 lety +2

    Can someone clearly explain what the k%=nums.length is doing here please

    • @pjac744
      @pjac744 Před 4 lety +4

      It's basically when your value of k is greater than the length of the array. Looking at a simple example, if your array is [1,2,3] and your k is 5, the final array is going to be the same even if you reverse it 2 times (which is equal to n%k). If you don't do this, you will get an error since you try to access an index which is out of bounds, i.e, there is no index (3,4,5) if your array size itself is only 3

    • @Moon-ru5ky
      @Moon-ru5ky Před 4 lety

      @@pjac744 thank you so much

    • @priyankavarahagiri3104
      @priyankavarahagiri3104 Před 4 lety

      That is to avoid the unnecessary computation when k > nums.length. Suppose k=15 and nums.length is 7. You can rotate the whole array by 1 and no need for doing it for 15 times.

  • @snake1625b
    @snake1625b Před 2 lety +1

    true sometimes its best to just look at the solution. way more efficient than just figuring it out on your own

    • @ashukashyap7142
      @ashukashyap7142 Před 5 měsíci

      can anybody solve a doubt
      we are doing the changes in the reverse nums array how it is reflected to the method rotate nums array

  • @andychang1179
    @andychang1179 Před 4 lety

    Thanks bro

  • @milos5247
    @milos5247 Před 3 lety

    I figured out a solution which calculates the designated index for each element after the rotation, and stores it in a hashmap then puts each one in their place afterwards, but its not constant space.

  • @ganeshkirankumar6910
    @ganeshkirankumar6910 Před 3 lety

    Awesome...

  • @ManvendraSK
    @ManvendraSK Před 3 lety

    What is the runtime then? Is it still O(n)? But we are traversing array 3 times here. I know O(n * 3) would become O(n). I don't know. What would you say?

  • @rohitk5252
    @rohitk5252 Před 2 lety +1

    They finally put it in Medium catagory ,

  • @redsantelices8498
    @redsantelices8498 Před 4 lety

    Wouldn't recursion be better in this problem?

  • @vivekparmar7576
    @vivekparmar7576 Před 2 lety

    There's an easier way to do this. In your for-loop, take the i-th element and add it by k and mod the length of the array. That's it. So you just insert the i value at i+k%(lengthOfArray).

  • @aniketr95
    @aniketr95 Před 4 lety

    Can you please explain the Cyclic Replacements approach as well! Thanks!

    • @zoxx972
      @zoxx972 Před 2 lety

      @Chistiy Kot 🤣

  • @shubhamgoel-web
    @shubhamgoel-web Před 3 lety

    Agree with your rant!

  • @hoangluongthanh9685
    @hoangluongthanh9685 Před rokem

    what effect k = k % nums.length;

  • @praveen123ist
    @praveen123ist Před 4 lety

    I second you bro! We shouldn't be wasting time, as we have plenty of free solutions on internet. Learn and then create your own solution, which is a fact and absolute truth!!

  • @vaishalikamble5998
    @vaishalikamble5998 Před rokem

    can you please explain this
    k=k % nums.length;

  • @woofsakura1013
    @woofsakura1013 Před rokem

    that's hard man

  • @saisurisetti6278
    @saisurisetti6278 Před rokem

    But what I don't get is isn't reversing just as costly as simply shifting the elements in the array?

  • @javaremastered1530
    @javaremastered1530 Před rokem

    u r correct

  • @chaitanyawaikar382
    @chaitanyawaikar382 Před 3 lety

    completely agreed.

  • @845aaa
    @845aaa Před 3 lety

    I know what video I need to watch if I am stressed

  • @MsFerid567
    @MsFerid567 Před 2 lety

    I'm confused the reverse function isnt call by reference how is it that the function is changing the array without return even though its call by value

  • @mix_mash3703
    @mix_mash3703 Před rokem +1

    what is the purpose of doing mod of k with the array length ! can anyone explain me in detail ???

    • @krishnar754
      @krishnar754 Před 7 měsíci +1

      Because if the value of k is greater than size of array we don't have to rotate the array k times.
      Eg array size is 7 let's say and if we are supposed to rotate it 10 times then that 10th iteration would give us the array rotated in such a fashion that it'll be exact same as 3rd iteration.
      So 10%7=3 as same as array rotated 3 times
      You don't have to rotate extra 7 times
      Hope I'm clear 😅

  • @yaroslavsk6940
    @yaroslavsk6940 Před 2 lety +1

    I guess you are right! The goal is to prepare for the interview and not to invent the wheel from scratch.

  • @srajankishorgupta1011
    @srajankishorgupta1011 Před 4 lety +3

    4:27 *That's why it's easy, coz it's easy*
    *U N D E R R A T E D*