Rotate Matrix/Image by 90 Degrees | Brute - Optimal

  Рет қаралды 282,151

take U forward

take U forward

Күн бұрын

Пікірлер
@takeUforward
@takeUforward Жыл бұрын
Please watch our new video on the same topic: kzbin.info/www/bejne/kGG1Y6hsnMlmfbc
@rainyvideo6936
@rainyvideo6936 10 ай бұрын
It's a loop same video link
@Arvinth2k4
@Arvinth2k4 9 күн бұрын
I solved this problem by myself. I didn’t believe that I could solve it, but my code passed all the test cases. At that moment, I was so happy.
@KNOWLEDGEBLE01
@KNOWLEDGEBLE01 9 күн бұрын
In which semester? Are you
@rudraprasad8912
@rudraprasad8912 Жыл бұрын
The way you approach the problem.......It gives me the confidence that i can also do it!!!!!💀
@aman_singh__
@aman_singh__ Жыл бұрын
TIMESTAMPS 00:49 Problem statement 2:06 Observation 2:24 Brute force approach 6:25 Brute force code 7:49 Optimized approach 14:00 pseudo code for transposition 15:01 Optimized approach code
@takeUforward
@takeUforward Жыл бұрын
Timestamps pleaseee. Let's march ahead, and create an unmatchable DSA course! ❤ Use the problem links in the description.
@iamvaibhav_10
@iamvaibhav_10 Жыл бұрын
notes link is not visible
@shra1
@shra1 Жыл бұрын
Love you brother, marching ahead consistently.
@riyadhossain1706
@riyadhossain1706 Жыл бұрын
How you elaborate on the problem and solution is unique to any other free content I have gone through. I'll surely gonna recommend your channel if somebody asks.
@alessandrocamilleri1239
@alessandrocamilleri1239 Жыл бұрын
Great explanation. I tried to come up with my solution prior to watching the video. I used the intuition of concentric squares within the matrix. I traverse one side of each concentric square and perform three swaps for each element . Since only one side of each concentric square is traversed, the number of elements traversed is approximately 1/4(m*n) and since there are 3 swaps for each element the time complexity will be O(3/4 m*n). Using a swap counter, Striver's solution is very close to O(m*n). However, unlike Striver, I do use some extra auxiliary constant space in the form of 4 pairs of co-ordinates which I use to determine the correct placing of the elements during swapping. void rotate(vector& m) { int l = 0; int h = m.size() - 1; pair a, b, c, d; while (l < h) { a = {l,l}; b = {l,h}; c = {h,h}; d = {h,l}; for (int i = l; i < h; i++) { swap (m[a.first][a.second], m[b.first][b.second]); swap (m[a.first][a.second], m[c.first][c.second]); swap (m[a.first][a.second], m[d.first][d.second]); a.second++; b.first++; c.second--; d.first--; } l++; h--; } }
@BharatMehta2
@BharatMehta2 2 ай бұрын
I had the same idea
@arjit1495
@arjit1495 7 ай бұрын
Thanks. We can further improve by not using loop for reversing of row in optimal instead just use reverse after j loop is finished like this: for(int i = 0; i < n; i++) { for(int j = i + 1; j < n; j++) { swap(mat[i][j], mat[j][i]); } reverse(mat[i].begin(), mat[i].end()); }
@BharathKumar-pm4zq
@BharathKumar-pm4zq 2 ай бұрын
it takes about o(n2) time complexity so our bro as done in lesser time (o(n/2*n/2+n/2))than you brother
@sayantandey4708
@sayantandey4708 Жыл бұрын
I did this optimal solution on my own, then came to see the solution video, this sheet building my confidence and skills little by little. (Rikon was my childhood friend. He worked for you some days back. No wonder why he praised you so much.)
@JohnCena-uf8sz
@JohnCena-uf8sz 6 ай бұрын
I am watching in sequence, the best explanation frrrr.. SOME ONE REMIND ME TO STUDY BY LIKING THE COMMENT
@shubhamagarwal1434
@shubhamagarwal1434 5 ай бұрын
#Free Education For All.. # Bhishma Pitamah of DSA...You could have earned in lacs by putting it as paid couses on udamey or any other elaerning portals, but you decided to make it free...it requires a greate sacrifice and a feeling of giving back to community, there might be very few peope in world who does this...."विद्या का दान ही सर्वोत्तम दान होता है" Hats Off to you man, Salute from 10+ yrs exp guy from BLR, India.
@Karansingh17373
@Karansingh17373 5 ай бұрын
we can also transpose as: for(int i=0;i
@Pw_Unfiltered
@Pw_Unfiltered 24 күн бұрын
and j>i
@sanjaykumar-sm3vo
@sanjaykumar-sm3vo 20 күн бұрын
All the time I am learning from your videos and every time I also wondered that where you have learnt all this stuff from!!!!
@omegzable
@omegzable 6 күн бұрын
solid explanation, this channel is a gem
@mlkgpta2869
@mlkgpta2869 Жыл бұрын
Nice explaination, the best part is that you teach how to build your mind to think in that way.....
@umeshkaushik710
@umeshkaushik710 Жыл бұрын
Thanks a lot bhaiya. This time I must say you are on fire. Your explaining capability is next level, bez I had problems in understanding the matrix(index and all). But Now super clear. OP Striver Guru 🔥🔥🔥🔥
@codedByAyush
@codedByAyush 7 ай бұрын
Bhaiya, apka har solutions are just too OP and easy to understand 🔥🔥
@onetapgaming123-v2x
@onetapgaming123-v2x Ай бұрын
Optimal approach was just wow! Finally understood 🎉
@chinmay6152
@chinmay6152 Жыл бұрын
Understood. Thank you for this amazing content. I have tried many lectures but the way you approach the problem it seems extremely easy.
@anuragprasad6116
@anuragprasad6116 11 ай бұрын
I used the idea of concentric squares to solve the problem. Say, n = 6. Now the square will be of 3X3 size. You can draw a matrix to see how the outer square is of length = 6, inside it there's a square of side = 4 and inside it there's another square of side = 2. Basically each inside square is of 2 units lesser length then its outer square. We traverse from outside to inside and rotate each square one by one. For rotation, we traverse the upper side of the square and use 3 swaps for each grid. Also, the traversal is done till 2nd last grid because if you do the dry run, you'll notice that the last grid is already swapped in the first step, i.e., the corners are common between 2 given sides. The most difficult part is to deduce the co-ordinates for the replacing element. Imagine a square which you're traversing on its top side. Now, the top left element will be replaced by bottom left, bottom left by bottom right, bottom right by top right and top right by top left. It's hard to explain in a comment how I arrived at the co-ordinates but if someone wants to try this out, instead of swapping element by element, first try swapping row by row. I've attached codes for both. Basically, store the upper side of square in a temp array then replace top row with left column, replace left column with bottom row and so on. Once you understand how that's working, the co-ordinates for element by element swap is same but using lesser extra space. If someone needs a video explanation, do reply and I'll try to post a video explaining the same. // Swapping row by row: for (int i = 0; i < n/2; i++) { vector temp; for (int j = i; j < m-i; j++) temp.push_back(mat[i][j]); for (int j = m-i-1; j >= i; j--) mat[i][j] = mat[n-1-j][i]; for (int j = m-i-1; j >= i; j--) mat[n-1-j][i] = mat[n-1-i][m-1-j]; for (int j = m-i-1; j >= i; j--) mat[n-1-i][m-1-j] = mat[j][m-1-i]; for (int j = m-i-1; j >= i; j--) mat[j][m-1-i] = temp[j-i]; } // Swapping element by element int len = mat.size(); for (int i = 0; i < len/2; i++) { for (int j = i; j < (len-i-1); j++) { int temp = mat[i][j]; mat[i][j] = mat[len-1-j][i]; mat[len-1-j][i] = mat[len-1-i][len-1-j]; mat[len-1-i][len-1-j] = mat[j][len-1-i]; mat[j][len-1-i] = temp; } }
@Manishgupta200
@Manishgupta200 Жыл бұрын
Best optimal explaination with in depth time complexity. Great. I do by myself with rotated by anti-clockwise and clockwise both. THankyou
@coolestCatEver
@coolestCatEver 4 ай бұрын
bro I was able to come up with the brute force myself but the optimal solution is just too good and clever 😆
@vidushibhardwaj1415
@vidushibhardwaj1415 9 ай бұрын
thankyou so muxh for these videos❤❤... and the problem link added is a different question, but in your dsa sheet its same
@mind9889
@mind9889 6 ай бұрын
I also came up with the transpose approach very happy 😁😁
@prithukathet193
@prithukathet193 Ай бұрын
optimal approach blew my mind.
@Krishnayadav-fu3uv
@Krishnayadav-fu3uv Жыл бұрын
very well understood, thank you for the great content ❤
@Ancientinsights002
@Ancientinsights002 Жыл бұрын
best DSA sheet ever you are the god of DSA really
@nitinpatel9259
@nitinpatel9259 Жыл бұрын
Brother you are awesome. The way you give the solutions of the problems and it very helpful for me to explain whole code(dry and run).🙏🙏
@MihirAnand-w2q
@MihirAnand-w2q 6 ай бұрын
We can also find a pattern i.e. i -> j and then j -> n-i-1
@ryanmathew6397
@ryanmathew6397 Жыл бұрын
so amazing watching your videos and getting to know how one should change there mind to observe the problem.
@abhijeetmishra3804
@abhijeetmishra3804 Жыл бұрын
Bhaiya ur amazing . How can one explain with soo much perfection man. Live long and keep making videos for us . Hope to meet you soon .
@brajeshmohanty2558
@brajeshmohanty2558 Жыл бұрын
now I understood why bhai chose c++ over java because u have to write so many function in java but in c++ u have stl :( . But bro i understood the question thanku :b
@cinime
@cinime Жыл бұрын
Understood! Amazing explanation as always, thank you very much for your effort!!
@Halid-pl1to
@Halid-pl1to Ай бұрын
just brilliant i have no word.
@ghayoorhussain8930
@ghayoorhussain8930 Жыл бұрын
Java Code: ```class Solution { public void rotate(int[][] matrix) { int n = matrix.length; // Transpose of Matrix for (int i = 0; i < n - 1; i++) { for (int j = i + 1; j < n; j++) { int temp = matrix[i][j]; matrix[i][j] = matrix[j][i]; matrix[j][i] = temp; } } // Reverse each row for (int i = 0; i < n; i++) { int left = 0, right = n - 1; while (left < right) { int temp = matrix[i][left]; matrix[i][left] = matrix[i][right]; matrix[i][right] = temp; left++; right--; } } } }```
@ishanjindal9001
@ishanjindal9001 Жыл бұрын
thanks
@_4p_
@_4p_ 4 ай бұрын
God bless you man
@curs3m4rk
@curs3m4rk 10 ай бұрын
I never thought, this question was that simple :( Understood Striver, Thanks
@rishipandey123
@rishipandey123 Жыл бұрын
Wow sir amazing and super easy explanation ❤❤❤😊
@neilkapadia7
@neilkapadia7 Жыл бұрын
Understood! Amazing explanation!
@khanra17
@khanra17 Жыл бұрын
9:54 We do transpose not because we need to convert rows into column. If we have a another matrix to store then we can do it directly instead of two steps. we do it so that we can swap elements. you can't do it directly. so do the extra step
@CodingEnv
@CodingEnv Жыл бұрын
I wish , I would have seen this video before makemytrip interview.. Thank you for great content.
@aryanmandi7748
@aryanmandi7748 11 ай бұрын
they ask to complete the func in interview or just write pseudo code
@mariia-travels
@mariia-travels Жыл бұрын
Thank you for work you do. Really helpful!
@getakashverma19
@getakashverma19 9 ай бұрын
hi, the solution provided in the sheet for java doesn't follow the same explanation, the logic is bit changed in it. Here, is the code following the explanation: class Solution { public void rotate(int[][] matrix) { int n = matrix.length, m = matrix[0].length; //Transpose for(int i =0; i
@ManognasaiSurineniManu
@ManognasaiSurineniManu 7 ай бұрын
Understood Thank you for this amazing lecture sir.
@torishi82
@torishi82 9 ай бұрын
Samaj aa gaya bhai. Thank you.
@ksankethkumar7223
@ksankethkumar7223 Жыл бұрын
TC for the first 2 nested for loops would be O(N*N/2) in my point of view?!
@ddevarapaga5134
@ddevarapaga5134 7 ай бұрын
Superb UNderstood
@suyashshinde2971
@suyashshinde2971 Жыл бұрын
SDE Sheet Day 2 Problem 1 Done!
@jatinsharma1595
@jatinsharma1595 Жыл бұрын
Understood. Thank you Striver
@AkOp-bf9vm
@AkOp-bf9vm 8 ай бұрын
i think swap part of optimal approach take time complexity of O(N * N/2) bcz first loop is running for n times and second N/2 times
@nikhilrajput5820
@nikhilrajput5820 Жыл бұрын
thanks you sir, i easily understand how to transpose matrix inplace.
@mr_weird3680
@mr_weird3680 9 ай бұрын
Thank you very much brother🙇
@rakshitrabugotra8354
@rakshitrabugotra8354 7 ай бұрын
Hi bro! I came across this problem and the first two operations on my mind were transpose and reverse. As the problem requried it to be solved in O(1) space, I carefully examined if the sequence of these operations made any signifcant changes to the performance. What I did was to reverse the matrix (row-wise) first, then take a transpose. The first operation used n/2 iterations (for optimal reversing). The second operation used n*(n+1)/2 iterations (for optimal transpose). So the total number of iterations with optimization: (n(n + 1) + n)/2 = O(n^2 + n) = O(n^2) With transpose first and then reverse each row: (n(n+1) + n^2)/2 = O(n^2 + n^2) = O(n^2) It doesn't make a difference as our PCs are blazzingly fast, but I found it neat :) Thanks a lot! This series is amazing!♥♥
@16_AIML_ABHYAMSHAW
@16_AIML_ABHYAMSHAW 5 ай бұрын
We don't need to use another loop for reverse() , we can simply add the reverse() after every inner loop ends but within outer loop.
@utsavseth6573
@utsavseth6573 Жыл бұрын
Beautifully explained.
@sarangkumarsingh7901
@sarangkumarsingh7901 10 ай бұрын
Awesome Lecture Sir.................
@harshilsutariya1793
@harshilsutariya1793 Жыл бұрын
your dedication 🙌🙌
@aarishfaiz7880
@aarishfaiz7880 Жыл бұрын
Sir app bhut accha Padhte hoo.
@technicaldoubts5227
@technicaldoubts5227 Жыл бұрын
understood very well !
@satyasegu3566
@satyasegu3566 Жыл бұрын
striver so happy to learn with youuh
@rashi1662
@rashi1662 Жыл бұрын
this is how I wrote the transpose code for(int i=0; i< n ; i++){ for(int j=i; j < n; j++){ swap(matrix[i][j], matrix[j][i]); } } which is less confusing
@ast_karan128
@ast_karan128 8 ай бұрын
bro this code is not optimal, because it this code u will traverse through all elements, and the code in the video is not traversing the diagonal element which reduce the time complexity
@rashi1662
@rashi1662 8 ай бұрын
@@ast_karan128 thanks for pointing that out bro 🤜
@KrishnaKumar-b4m9p
@KrishnaKumar-b4m9p 3 ай бұрын
this will not work because after this loop all the element will be in actual place only and the array will be reach to its initial state because u are swapping twice the same element and so after this loop ends and there will be no change...
@_hulk748
@_hulk748 Жыл бұрын
Great Explanation❤🙇‍♂✨🙏
@yhbarve
@yhbarve Жыл бұрын
Hey Striver, the problem link and the video link doesn't match in the SDE sheet, please get it updated...
@shindeprem228
@shindeprem228 6 ай бұрын
I am confused with the time complexity of first loop of optimal solution, I think it is O(n^2). Can anyone please explain, what's correct?
@JK-de2gh
@JK-de2gh 6 ай бұрын
we can say some how the over all tc will be o(n^2) i even checked with the chatgpt it is o(n^2) by overall
@Vyshnavi-e4m
@Vyshnavi-e4m 5 ай бұрын
It should be O(n/2) + O(n/2) right ?? We are using only 1 for loop right???
@KarthikNandam-xs4qn
@KarthikNandam-xs4qn 3 ай бұрын
matrix need 2 loops 💀
@HARSHA_27
@HARSHA_27 Жыл бұрын
understood!!🙇‍♂
@PalakAgarwal-o3p
@PalakAgarwal-o3p 2 күн бұрын
striver, you did not specify in the problem statement that only square matrices are to be considered, but your solution will only work for those.
@ganeshjaggineni4097
@ganeshjaggineni4097 Ай бұрын
NICE SUPER EXCELLENT MOTIVATED
@KanakamamidiPraneeth
@KanakamamidiPraneeth 2 ай бұрын
Hi Striver, Understood, Thanks
@himanshigupta3255
@himanshigupta3255 4 ай бұрын
******* we can do by this approach here i have used the i variable to swap the value instead of iterating i+1 to n-1 class Solution { public: void rotate(vector& matrix) {int n=matrix.size(); int m=matrix[0].size(); for(int i=0;i
@RituSingh-ne1mk
@RituSingh-ne1mk Жыл бұрын
Understood!
@elmo4672
@elmo4672 9 ай бұрын
trying to pass first year of college : ( thank you : )
@Tarun36876
@Tarun36876 Ай бұрын
@takeUforward why are i is not going till n , why only till n-1 ? please explain
@tamilmukbang3789
@tamilmukbang3789 9 ай бұрын
understood. thank you so much bro
@mdanashkhan5144
@mdanashkhan5144 11 ай бұрын
at 14.33vu said j loop goes till n-1 and in code at 15 .26 u have wriiten j
@HarchitGulati
@HarchitGulati Жыл бұрын
one doubt if we have to space optimise why are we not swapping the elements in the same brute force aprroach instead of creating extra dp
@harshdiwase1941
@harshdiwase1941 Жыл бұрын
great explanation
@computer_tech98
@computer_tech98 Жыл бұрын
Thank you
@DeepakKumar-oz5ky
@DeepakKumar-oz5ky Жыл бұрын
Thank u Bhaiya Very helpFul video
@konankikeerthi
@konankikeerthi 7 ай бұрын
Understood bro. Thank you
@rahuljmd
@rahuljmd Жыл бұрын
Understood, thanks💚
@kushagramishra5638
@kushagramishra5638 Жыл бұрын
understood!
@AbhishekKumar-cv1dh
@AbhishekKumar-cv1dh Жыл бұрын
Understoooood 🔥😁
@samuelfrank1369
@samuelfrank1369 11 ай бұрын
Understood. Thanks a lot
@NazeerBashaShaik
@NazeerBashaShaik 10 ай бұрын
Understood, thank you.
@cleweric
@cleweric 5 ай бұрын
an approach i came up with, if you need to rotate clockwise, just swap elements at each layer anticlockwise void rotate(vector& matrix) { int n = matrix.size(); for(int i=0; i
@shreyaschauhan229
@shreyaschauhan229 25 күн бұрын
done ✅
@ast_karan128
@ast_karan128 8 ай бұрын
for left rotate the matrix to 90 degree just reverse the columns instead of rows and done
@infernogamer52
@infernogamer52 Жыл бұрын
Understood bhaiya!
@utkarshpundeer07
@utkarshpundeer07 2 ай бұрын
Understood 👍
@Sameer-wm8dn
@Sameer-wm8dn 6 ай бұрын
I didn’t understand how is the time complexity N/2 * N/2 for the first part
@ErenYeager-dp4er
@ErenYeager-dp4er Ай бұрын
Busy due to college fest happening in my college, now I am back. Will Make it 40th video before 2025. Done on 27 December 2024 at 00:18. Place : Study Room 2 , Hostel 5 IITB
@shobhitsrivastava1223
@shobhitsrivastava1223 Жыл бұрын
Understood❤
@culeforever5408
@culeforever5408 Жыл бұрын
understood 🚴‍♂
@PankajSingh-pb4vs
@PankajSingh-pb4vs 11 ай бұрын
Understood ❤
@worldtg1392
@worldtg1392 11 ай бұрын
instead of swaping can i convert the whole array into transpose
@karanhaldar755
@karanhaldar755 10 ай бұрын
great job bro
@ABISHEK-r7k
@ABISHEK-r7k 10 ай бұрын
UNDERSTOOD SIR
@ayushjaiswal7298
@ayushjaiswal7298 10 ай бұрын
tell me a code to reverse the elements of column using reverse function in above question ( rotate matrix in gfg )
@dayashankarlakhotia4943
@dayashankarlakhotia4943 Жыл бұрын
Understood very well
@MIRAZIB
@MIRAZIB Жыл бұрын
Can any one tell me which software Striver is using for writing & drawing? 📕📕
@nahidfaraji5069
@nahidfaraji5069 Жыл бұрын
Wacom Tablet
@MIRAZIB
@MIRAZIB Жыл бұрын
@@nahidfaraji5069 I was keen to know about the software.
@sayantanpoddar5428
@sayantanpoddar5428 Жыл бұрын
understood please came up with string problems
Spiral Traversal of a Matrix | Spiral Matrix
16:33
take U forward
Рет қаралды 269 М.
Set Matrix Zeroes | O(1) Space Approach | Brute - Better - Optimal
30:07
To Brawl AND BEYOND!
00:51
Brawl Stars
Рет қаралды 17 МЛН
UFC 310 : Рахмонов VS Мачадо Гэрри
05:00
Setanta Sports UFC
Рет қаралды 1,2 МЛН
AI Is Making You An Illiterate Programmer
27:22
ThePrimeTime
Рет қаралды 163 М.
Count Subarray sum Equals K | Brute - Better -Optimal
24:09
take U forward
Рет қаралды 384 М.
How to Remember Everything You Read
26:12
Justin Sung
Рет қаралды 3,3 МЛН
Rotate Image - Matrix - Leetcode 48
15:46
NeetCode
Рет қаралды 255 М.
Transformers (how LLMs work) explained visually | DL5
27:14
3Blue1Brown
Рет қаралды 4,6 МЛН
Fast Inverse Square Root - A Quake III Algorithm
20:08
Nemean
Рет қаралды 5 МЛН
How do Graphics Cards Work?  Exploring GPU Architecture
28:30
Branch Education
Рет қаралды 3,2 МЛН
How I would learn Leetcode if I could start over
18:03
NeetCodeIO
Рет қаралды 823 М.
Pascal Triangle | Finding nCr in minimal time
26:45
take U forward
Рет қаралды 321 М.