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
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
2 жыл бұрын
my friend wasted 5 days on a problem , eventually ended up looking at the solution
@AshutoshKumar-es8xy
2 жыл бұрын
I solved the add two numbers for a month.
@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
10 ай бұрын
@@kushagraahire1871 🤣🤣🤣🤣
What you said about not stressing on problem for long is absolutely true Bruh !
@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
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! :)
I wish there was a resource available for learning these "tools" then another section devoted to practicing these tools building on your knowledge.
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
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!
you are my absolute favorite youtuber to watch while studying for tech interviews
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 :)
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.
I really needed to hear these words after this problem, I really felt down. Thanks Nick.
Came for the explanation of the problem, but stayed for the advice! Thanks Nick!
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.
Thanks man, this video did change my outlook on how to solve problems in general.
My left ear understood the solution really well. Thank you!
Thnks nick , you are an inspiration to overcome my fear from DS & Algo ...Awesome
True man ....u tell everything that we all go through while solving the problem
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.
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
3 жыл бұрын
hello
@dheerajkashyap7607
2 жыл бұрын
I spent 2 days
@techietwit
2 жыл бұрын
That 2 hours are not waste of time actually.
Hey Nick I think the juggling algorithm would be more efficient for doing this rotation. What is your thought about it?
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
4 жыл бұрын
Obviously, you are not the only dumbass :(
He knows if we are stressed or not. Thanks bro for the help. Appreciate you.
Today I learned a great life lesson. Thank you so much man
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
4 жыл бұрын
So true !!
Very practical advice on cracking theses tech interviews. It begs the question about the value of these interviews.
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
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.
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.
Thanks a lot for the video. How come the complexity for this is O(n+k) ? Can someone help me here ?
~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
Hey was k = k%nums.length kind of a check that arrray's size always stays greater than k.?
Thanks Not only for the problem But also for the advice That was so precious🙃
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
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
Outstanding advice, Nick. Thanks for making such awesome videos.
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
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
Very nice and well said, I like your strategy to solve these types of problems.
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.
I was sitting on this question for about 2 hours. Wish I saw this video sooner. Thanks man.
@ToastFrench24
4 жыл бұрын
same
I was struggling to understand the approach. That explanation in the solution was to the point. Thanks 🙏
BROOOO THE FIRST SOLUTION BLEW MY MIND, OMG. I NEED TO BUY LEETCODE PREMIUM ASAP NO ROCKY.
Great words of wisdom Nick!
i waste my 1 hour by learning many methods but i see this method and finally i apply this method
thanks man for advice !! you are helping me alot.
The most beautifully explained.... Very appreciate your effort. Thanks.
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
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].
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
Nice rant(wisdom) at the beginning!
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!
Brilliant thank you so much for explanation and advices.
i would have got the algo anywhere but dude that advice was so good thanks !!
@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
Hi Nick.. Do we need to buy leetcode premium account for solutions ?
Thanks, Bro, much appreciated.
I was not able understand Approach#3 given in solution on LeetCode .Any help would be appreciated.
Thanks for amazing explanation and important advice to solve problems
I can't believe how easy this is omg thank you! Saved so much time...
@natnaelghirma2617
3 жыл бұрын
but its not easy
Great advice nick!
what is the purpose of doing mod of k with the array length ! can anyone explain me in detail ???
@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 😅
You always motivate me brother.
very good solution brother.
Thank you for great advise :)
why did u take k =k%nums.length ??
nick thank brother i like way of your thinking
Man you are god!! much needed motivation thanks :)
can you explain block swap algorithm program??
That's great! Can you put a video on juggling algorithm, please???
Can someone clearly explain what the k%=nums.length is doing here please
@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
4 жыл бұрын
@@pjac744 thank you so much
@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.
I'm confused by the reverse function. Doesn't Java only pass by value? How does it alter the original nums array?
@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.....
thanx bro ....for the advise
true sometimes its best to just look at the solution. way more efficient than just figuring it out on your own
@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
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.
can you please explain this k=k % nums.length;
exactly my thoughts, 100% agree
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?
I literally spent a day trying to solve this
Than you so much!
This is excellent...!!!
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
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
But what I don't get is isn't reversing just as costly as simply shifting the elements in the array?
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
Man I watched you u since my clg , one day hope I will meet you legend!
@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
thanks nick
subcribed keep posting such content
Lol Nick White, always finds a way to be entertaining. *Positive*
what effect k = k % nums.length;
Wouldn't recursion be better in this problem?
i wish ur channel gets higher reach.
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).
How would you rotate the array in the opposite direction?
@noobmaster69jr
2 жыл бұрын
For 2nd and 3rd rotation, subtract k with n. rotate(0, n-k-1) rotate(n-k, n-1)
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.
Can you please explain the Cyclic Replacements approach as well! Thanks!
@zoxx972
2 жыл бұрын
@Chistiy Kot 🤣
Could you please tell why do we do k=k%n
@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.
They finally put it in Medium catagory ,
Thanks bro
Awesome...
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!!
Agree with your rant!
completely agreed.
u r correct
that's hard man