LeetCode Rotate Array Solution Explained - Java

Ғылым және технология

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

Пікірлер: 194

  • @shreejitnair2174
    @shreejitnair21744 жыл бұрын

    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

    2 жыл бұрын

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

  • @AshutoshKumar-es8xy

    @AshutoshKumar-es8xy

    2 жыл бұрын

    I solved the add two numbers for a month.

  • @samuelvalentine7846

    @samuelvalentine7846

    Жыл бұрын

    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

    10 ай бұрын

    @@kushagraahire1871 🤣🤣🤣🤣

  • @aghavvikas
    @aghavvikas4 жыл бұрын

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

  • @samuelvalentine7846

    @samuelvalentine7846

    Жыл бұрын

    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
    @vm16624 жыл бұрын

    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! :)

  • @CCV334
    @CCV3344 жыл бұрын

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

  • @samuelvalentine7846
    @samuelvalentine7846 Жыл бұрын

    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

  • @Rohan004
    @Rohan004 Жыл бұрын

    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!

  • @ruthylevi9804
    @ruthylevi98042 жыл бұрын

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

  • @sunnysrivastav2470
    @sunnysrivastav24703 жыл бұрын

    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 :)

  • @dangereuxdave
    @dangereuxdave2 жыл бұрын

    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.

  • @farizma
    @farizma3 жыл бұрын

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

  • @ankit2056
    @ankit20563 жыл бұрын

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

  • @alexshiferaw7180
    @alexshiferaw71804 жыл бұрын

    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.

  • @divyanshuchaudhari5416
    @divyanshuchaudhari54163 жыл бұрын

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

  • @amogh_wagh
    @amogh_wagh3 жыл бұрын

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

  • @hackernight5110
    @hackernight51104 жыл бұрын

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

  • @Dyslexic_Neuron
    @Dyslexic_Neuron4 жыл бұрын

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

  • @AbhinavKumar-dr4ef
    @AbhinavKumar-dr4ef2 жыл бұрын

    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.

  • @umabharati9911
    @umabharati99114 жыл бұрын

    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 :)

  • @unknownman1

    @unknownman1

    3 жыл бұрын

    hello

  • @dheerajkashyap7607

    @dheerajkashyap7607

    2 жыл бұрын

    I spent 2 days

  • @techietwit

    @techietwit

    2 жыл бұрын

    That 2 hours are not waste of time actually.

  • @nilanjanmukhopadhyay8369
    @nilanjanmukhopadhyay83694 жыл бұрын

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

  • @jamesmiller2521
    @jamesmiller25214 жыл бұрын

    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

    4 жыл бұрын

    Obviously, you are not the only dumbass :(

  • @rameshshrestha9520
    @rameshshrestha95204 жыл бұрын

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

  • @prateek8211
    @prateek82112 жыл бұрын

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

  • @biscottigelato8574
    @biscottigelato85744 жыл бұрын

    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?

  • @Dyslexic_Neuron

    @Dyslexic_Neuron

    4 жыл бұрын

    So true !!

  • @gregorywilson2124
    @gregorywilson21242 жыл бұрын

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

  • @son0funiverse
    @son0funiverse2 жыл бұрын

    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

  • @savantdude
    @savantdude4 жыл бұрын

    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.

  • @saketkumar7335
    @saketkumar73353 жыл бұрын

    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.

  • @medharawat5648
    @medharawat56482 жыл бұрын

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

  • @savvy9431
    @savvy94313 жыл бұрын

    ~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

  • @sanskarkaazi3830
    @sanskarkaazi38302 жыл бұрын

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

  • @liftwithamey
    @liftwithamey3 жыл бұрын

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

  • @user-ig2kt4jp8i
    @user-ig2kt4jp8i10 ай бұрын

    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

  • @ashukashyap7142
    @ashukashyap71425 ай бұрын

    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

  • @rajeshseptember09
    @rajeshseptember099 ай бұрын

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

  • @sivan2878
    @sivan2878 Жыл бұрын

    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

    5 ай бұрын

    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

  • @bedsingh
    @bedsingh3 жыл бұрын

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

  • @dsamadeeasierwithpython3628
    @dsamadeeasierwithpython36283 жыл бұрын

    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.

  • @ArbaazKhan-zc3gu
    @ArbaazKhan-zc3gu4 жыл бұрын

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

  • @ToastFrench24

    @ToastFrench24

    4 жыл бұрын

    same

  • @EklakDangaura
    @EklakDangaura6 ай бұрын

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

  • @OverLordOfDa3rdWorld
    @OverLordOfDa3rdWorld4 жыл бұрын

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

  • @sweetsanch
    @sweetsanch3 жыл бұрын

    Great words of wisdom Nick!

  • @top10thingwhichyoushouldkn37
    @top10thingwhichyoushouldkn373 жыл бұрын

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

  • @sachinallugani3229
    @sachinallugani32292 жыл бұрын

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

  • @dipabhow4630
    @dipabhow4630Ай бұрын

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

  • @Endlessvoidsutidos
    @Endlessvoidsutidos4 жыл бұрын

    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

  • @SergeSergey
    @SergeSergey4 жыл бұрын

    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].

  • @nikola7377
    @nikola73772 жыл бұрын

    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

  • @nikhilmishra7572
    @nikhilmishra75724 жыл бұрын

    Nice rant(wisdom) at the beginning!

  • @dipakkumarrai1442
    @dipakkumarrai14422 жыл бұрын

    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!

  • @mehmetakifyegin9307
    @mehmetakifyegin9307 Жыл бұрын

    Brilliant thank you so much for explanation and advices.

  • @vighneshk509
    @vighneshk5094 жыл бұрын

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

  • @ashukashyap7142

    @ashukashyap7142

    5 ай бұрын

    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

  • @algorithmsguide5076
    @algorithmsguide50764 жыл бұрын

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

  • @akashbhadouria6727
    @akashbhadouria67274 жыл бұрын

    Thanks, Bro, much appreciated.

  • @yagizegemen7303
    @yagizegemen73033 жыл бұрын

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

  • @TayiAbhignyaBCE
    @TayiAbhignyaBCE Жыл бұрын

    Thanks for amazing explanation and important advice to solve problems

  • @aycanocal6506
    @aycanocal65063 жыл бұрын

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

  • @natnaelghirma2617

    @natnaelghirma2617

    3 жыл бұрын

    but its not easy

  • @snowpants123
    @snowpants1234 жыл бұрын

    Great advice nick!

  • @mix_mash3703
    @mix_mash3703 Жыл бұрын

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

  • @krishnar754

    @krishnar754

    7 ай бұрын

    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 😅

  • @ayanakojikiyot
    @ayanakojikiyot2 жыл бұрын

    You always motivate me brother.

  • @satyamgupta6030
    @satyamgupta6030 Жыл бұрын

    very good solution brother.

  • @UnprivilegedDelhi
    @UnprivilegedDelhi2 жыл бұрын

    Thank you for great advise :)

  • @amritasingh5632
    @amritasingh56322 жыл бұрын

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

  • @skumakerguitar8708
    @skumakerguitar87082 жыл бұрын

    nick thank brother i like way of your thinking

  • @divyatejaswinivengada6368
    @divyatejaswinivengada63684 жыл бұрын

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

  • @abhishektambewagh6156
    @abhishektambewagh61562 жыл бұрын

    can you explain block swap algorithm program??

  • @jayasripalanisamy6838
    @jayasripalanisamy68383 жыл бұрын

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

  • @Moon-ru5ky
    @Moon-ru5ky4 жыл бұрын

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

  • @pjac744

    @pjac744

    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

    4 жыл бұрын

    @@pjac744 thank you so much

  • @priyankavarahagiri3104

    @priyankavarahagiri3104

    4 жыл бұрын

    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.

  • @johnnymurf
    @johnnymurf3 жыл бұрын

    I'm confused by the reverse function. Doesn't Java only pass by value? How does it alter the original nums array?

  • @johnnymurf

    @johnnymurf

    3 жыл бұрын

    Ok so arrays are objects in java and java allows you to modify objects in place. Can't believe I didn't know that.....

  • @naveenkumardongre
    @naveenkumardongre3 жыл бұрын

    thanx bro ....for the advise

  • @snake1625b
    @snake1625b2 жыл бұрын

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

  • @ashukashyap7142

    @ashukashyap7142

    5 ай бұрын

    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

  • @milos5247
    @milos52473 жыл бұрын

    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.

  • @vaishalikamble5998
    @vaishalikamble5998 Жыл бұрын

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

  • @mashak3765
    @mashak37653 жыл бұрын

    exactly my thoughts, 100% agree

  • @ManvendraSK
    @ManvendraSK3 жыл бұрын

    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?

  • @mrxXxkink
    @mrxXxkink4 жыл бұрын

    I literally spent a day trying to solve this

  • @mrxgamer7567
    @mrxgamer75672 жыл бұрын

    Than you so much!

  • @rasikadandawate4721
    @rasikadandawate47213 жыл бұрын

    This is excellent...!!!

  • @NitinKumar-vl3vx
    @NitinKumar-vl3vx4 жыл бұрын

    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

    5 ай бұрын

    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

  • @saisurisetti6278
    @saisurisetti6278 Жыл бұрын

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

  • @MsFerid567
    @MsFerid5672 жыл бұрын

    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

  • @shiblijamal8544
    @shiblijamal8544 Жыл бұрын

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

  • @ashukashyap7142

    @ashukashyap7142

    5 ай бұрын

    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

  • @spidermanclips7966
    @spidermanclips79662 жыл бұрын

    thanks nick

  • @Jatin-Rohilla.
    @Jatin-Rohilla.11 ай бұрын

    subcribed keep posting such content

  • @son0funiverse
    @son0funiverse2 жыл бұрын

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

  • @hoangluongthanh9685
    @hoangluongthanh9685 Жыл бұрын

    what effect k = k % nums.length;

  • @redsantelices8498
    @redsantelices84984 жыл бұрын

    Wouldn't recursion be better in this problem?

  • @ramkaranmnit7280
    @ramkaranmnit72803 жыл бұрын

    i wish ur channel gets higher reach.

  • @vivekparmar7576
    @vivekparmar75762 жыл бұрын

    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).

  • @wewonbro1620
    @wewonbro16203 жыл бұрын

    How would you rotate the array in the opposite direction?

  • @noobmaster69jr

    @noobmaster69jr

    2 жыл бұрын

    For 2nd and 3rd rotation, subtract k with n. rotate(0, n-k-1) rotate(n-k, n-1)

  • @simondavis1303
    @simondavis13039 ай бұрын

    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.

  • @aniketr95
    @aniketr954 жыл бұрын

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

  • @zoxx972

    @zoxx972

    2 жыл бұрын

    @Chistiy Kot 🤣

  • @subhamthemusicalguy8851
    @subhamthemusicalguy88513 жыл бұрын

    Could you please tell why do we do k=k%n

  • @seal0118

    @seal0118

    3 жыл бұрын

    k could be a facistly large number like 1300, and our array could be of small size like 4, if you used the naive approach without (k %= n) you would do a very large unnecessary amount of work, luckily, in the "cyclic replacement" and "hashmap" solutions, we dont really need to make that arithmetic, since we take ( (i + k)%n) anyway to decide our new index, but here, in "reverse" solution its a must because of what i said at first.

  • @rohitk5252
    @rohitk52522 жыл бұрын

    They finally put it in Medium catagory ,

  • @andychang1179
    @andychang11794 жыл бұрын

    Thanks bro

  • @ganeshkirankumar6910
    @ganeshkirankumar69103 жыл бұрын

    Awesome...

  • @praveen123ist
    @praveen123ist4 жыл бұрын

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

  • @shubhamgoel-web
    @shubhamgoel-web3 жыл бұрын

    Agree with your rant!

  • @chaitanyawaikar382
    @chaitanyawaikar3823 жыл бұрын

    completely agreed.

  • @javaremastered1530
    @javaremastered1530 Жыл бұрын

    u r correct

  • @woofsakura1013
    @woofsakura1013 Жыл бұрын

    that's hard man

Келесі