Sort Colors (LeetCode 75) | Dutch National Flag Problem | Full Solution with Visuals and Animations

  Рет қаралды 17,238

Nikhil Lohia

Nikhil Lohia

Күн бұрын

Actual Problem: leetcode.com/problems/sort-co...
Chapters:
00:00 - Intro
00:40 - Problem Statement and Description
02:43 - The most obvious solution
05:23 - Solving for efficiency in-place
12:01 - Dry-run of Code
14:28 - Final Thoughts
📚 Links to topics I talk about in the video:
Sorting Techniques: • Sorting Techniques
Arrays: • Array Data Structure e...
📘 A text based explanation is available at: studyalgorithms.com
Code on Github: github.com/nikoo28/java-solut...
Test-cases on Github: github.com/nikoo28/java-solut...
📖 Reference Books:
Starting Learn to Code: amzn.to/36pU0JO
Favorite book to understand algorithms: amzn.to/39w3YLS
Favorite book for data structures: amzn.to/3oAVBTk
Get started for interview preparation: amzn.to/39ysbkJ
🔗 To see more videos like this, you can show your support on: www.buymeacoffee.com/studyalg...
🎥 My Recording Gear:
Recording Light: amzn.to/3pAqh8O
Microphone: amzn.to/2MCX7qU
Recording Camera: amzn.to/3alg9Ky
Tablet to sketch and draw: amzn.to/3pM6Bi4
Surface Pen: amzn.to/3pv6tTs
Laptop to edit videos: amzn.to/2LYpMqn
💻 Get Social 💻
Follow on Facebook at: / studyalgos
Follow on Twitter at: / studyalgorithms
Follow on Tumblr at: / studyalgos
Subscribe to RSS feeds: studyalgorithms.com/feed/
Join fan mail: eepurl.com/g9Dadv
#leetcode #programming #interview

Пікірлер: 55
@Azeem_Idrisi
@Azeem_Idrisi 5 ай бұрын
Best solution I've seen for this problem. This channel is so underrated.
@unanimous8510
@unanimous8510 17 күн бұрын
Man that’s the best explanation. I saw the coded solution for this problem which is same as yours but couldn’t wrap my head around it. Now I got it! Thank you!
@sarthakgadge5223
@sarthakgadge5223 11 күн бұрын
Thanks man this helped me a lot, loved your energy throughout the problem.
@azharsofi2854
@azharsofi2854 Жыл бұрын
your teaching is next level
@shabanlukyamuzi4012
@shabanlukyamuzi4012 9 ай бұрын
Best explanation on KZbin for the problem
@shwetayadav4244
@shwetayadav4244 5 ай бұрын
your explanations are really amazing. In fact, best so far :) Please make more videos :)
@moezzzz9341
@moezzzz9341 6 ай бұрын
Your the best bro. The problem seems so easy with the way you explain it. Thanks again. Also this is my solution in python based on your approach class Solution: def sortColors(self, nums: List[int]) -> None: """ Do not return anything, modify nums in-place instead. """ start = 0 middle = 0 end = len(nums ) - 1 while middle
@vinoths7140
@vinoths7140 Жыл бұрын
Great Explanation, Thank You.
@mayankbadika3101
@mayankbadika3101 6 ай бұрын
very good explanation! keep up the good work
@dylanjara201
@dylanjara201 Жыл бұрын
Perfect explained. Ty sir!!
@anayatk.007
@anayatk.007 7 ай бұрын
Thank you for providing such fantastic content
@omdongare6725
@omdongare6725 6 ай бұрын
Your the best bro. The problem seems so easy with the way you explain it. Thanks again. Also this is my solution in python based on your approac
@BroskiXP
@BroskiXP Ай бұрын
Great explanation, good work
@omsudhamsh.h
@omsudhamsh.h Ай бұрын
Picture perfect mate! Thanks.
@user-yh2vm8ge2u
@user-yh2vm8ge2u 2 ай бұрын
VERY NICE EXPLANATION WITH CLARITY . THANKS BHAIYA .
@neeeelll_
@neeeelll_ Жыл бұрын
Beautifully explained. could u please come up with topic based important questions
@apex095
@apex095 Жыл бұрын
elegant solution. could you please add more questions on variety of topics like Stacks and Queues etc on your website ?
@sithutun688
@sithutun688 Ай бұрын
best explanation Sir! I didn't watch the coding part before solving the problem. So I implemented it using if-else statements.After solving, I watched the last part. I found out you wrote it using switch cases. Understanding both versions make me confident in coding
@sumitraj9312
@sumitraj9312 4 ай бұрын
Thank you, ploblem solved. love you 😁
@LokeshSharma-hm5jz
@LokeshSharma-hm5jz 9 ай бұрын
i dont know why i developed a fear for this problem. You made it very easy. Thanks.
@nikoo28
@nikoo28 8 ай бұрын
I was once in the same boat as you my friend. :)
@everyontech2716
@everyontech2716 Жыл бұрын
great explanation
@user-wj4eg4rx4j
@user-wj4eg4rx4j 8 ай бұрын
Underrated!
@arnavkukreti2009
@arnavkukreti2009 10 ай бұрын
you explain in a very good manner thank you
@nikoo28
@nikoo28 9 ай бұрын
So nice of you
@technicalguy.
@technicalguy. 4 ай бұрын
Thank you soo much ❤❤
@Harrish30
@Harrish30 Жыл бұрын
Perfect!! Thanks
@subee128
@subee128 6 ай бұрын
Thank you
@sarthakgupta096
@sarthakgupta096 10 ай бұрын
Thankyou sir your way of teaching is amazing
@nikoo28
@nikoo28 9 ай бұрын
It's my pleasure
@iceyyeah
@iceyyeah 5 ай бұрын
Thanks
@jerronjones470
@jerronjones470 9 ай бұрын
Yay, someone I can understand
@pranavshekhar2048
@pranavshekhar2048 3 ай бұрын
Great explaination! But I noticed one thing, in the first example, first swap is wrong as middle was at 0, so swap between start and middle should take place and start and middle should move and not between middle and end i.e 0 and 2 what you did because middle was not at 2.
@user-un9ri4vt7l
@user-un9ri4vt7l 3 ай бұрын
sir, I actually used in-built sort function, in leetcode ie. sort(nums.begin(),nums.end()), and it said said, u beat 100% users with c++. Can we do this or not???
@nikoo28
@nikoo28 2 ай бұрын
You can, but your interviewer and ask you to solve it without sorting.
@KarthikC-ju4fx
@KarthikC-ju4fx 22 күн бұрын
@iiju8212
@iiju8212 Жыл бұрын
Bhai kaafi mast samjhaya.
@officialdreamplayz
@officialdreamplayz 4 ай бұрын
i used selection sort
@CPS_XI
@CPS_XI 3 ай бұрын
💯❤
@m-bk4um
@m-bk4um 9 ай бұрын
good
@user-ik1qr9ez2b
@user-ik1qr9ez2b 5 ай бұрын
why we are not incrementing mid when it is arr[mid] is 2?
@nikoo28
@nikoo28 4 ай бұрын
we swap it out, and put the 2 at the end. so we don't increment it. we need to see what came after the swap.
@bhargavinaik8145
@bhargavinaik8145 24 күн бұрын
@@nikoo28 I solved it on leetcode, i knew it would fail for some testcases and it did, I kept trying to understand what was the pattern of those test cases, your answer made understand that exact point. Thanks :)
@SubhajitDas-mt7sn
@SubhajitDas-mt7sn 24 күн бұрын
c++ class Solution { public: void sortColors(vector& nums) { int start = 0; int middle = 0; int end = nums.size() - 1; while (middle
@shenth27
@shenth27 2 ай бұрын
why don't we just loop through the entire array and count the 0's and 1's in seperate variables, then loop the array again and replace number of 0, 1, 2 in that order.
@DohaZilaoui-zq1gx
@DohaZilaoui-zq1gx 2 ай бұрын
Its just of solution of 10000000000solutions that u should keep it in your mind
@nikoo28
@nikoo28 2 ай бұрын
There are multiple ways to approach the problem. You want to do in the fastest way possible. It cannot get faster than a single scan
@unemployedcse3514
@unemployedcse3514 Ай бұрын
but interviewer won't be impressed by this approach 😂😂
@nenuanenenuane6645
@nenuanenenuane6645 Жыл бұрын
// Java code to sort an array of integers // with the help of single loop import java.util.*; class Geeks_For_Geeks { // Function for Sorting the array // using a single loop public static int[] sortArrays(int[] arr) { // Finding the length of array 'arr' int length = arr.length; // Sorting using a single loop for (int j = 0; j < length - 1; j++) { // Checking the condition for two // simultaneous elements of the array if (arr[j] > arr[j + 1]) { // Swapping the elements. int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; // updating the value of j = -1 // so after getting updated for j++ // in the loop it becomes 0 and // the loop begins from the start. j = -1; } } } Bro can we use this as well plz let me know
@chessps
@chessps Жыл бұрын
more easier!!! class Solution { public static void sortColors(int[] nums) { int zero = 0; int one = 0; int two = 0; for (int i: nums) { if(i==0){ zero++; } else if (i==1) { one++; }else { two++; } } for (int i = 0; i < nums.length ; i++) { if(zero!=0){ zero--; nums[i]= 0; } else if (one!=0) { one--; nums[i]= 1; }else if(two!=0) { two--; nums[i]= 2; } } } }
@kidoo1567
@kidoo1567 10 ай бұрын
But complexity?
@ankitraj4179
@ankitraj4179 24 күн бұрын
Java Solution (Beats 100 %) class Solution { public void sortColors(int[] nums) { int n = nums.length ; int[] arr = new int[3] ; int element = 0 ; for(int i = 0 ; i < n ; i++){ element = nums[i] ; arr[element]++ ; } int count = 0 ; int k = 0 ; for(int i = 0 ; i 0){ nums[k] = i ; k++ ; count-- ; } } } }
@hwval-zw4hy
@hwval-zw4hy 5 ай бұрын
Why not just count zeroes and ones and refill the array in place? 😂
@nikoo28
@nikoo28 5 ай бұрын
You will need to iterate over the array twice. First to count all the different 0 and 1s. Next iteration will be to actually fill all the elements. In the approach I discuss, we just do a single scan of the array.
@hwval-zw4hy
@hwval-zw4hy 5 ай бұрын
@@nikoo28 I like your solution. One pass is good. Though counting involves same big O complexity and simpler approach. I also think your solution fits better definition of in-place. E.g. if these were objects, not integers to sort: mine solution wouldn't be acceptable.
When You Get Ran Over By A Car...
00:15
Jojo Sim
Рет қаралды 14 МЛН
THEY WANTED TO TAKE ALL HIS GOODIES 🍫🥤🍟😂
00:17
OKUNJATA
Рет қаралды 17 МЛН
ОСКАР ИСПОРТИЛ ДЖОНИ ЖИЗНЬ 😢 @lenta_com
01:01
Dutch National Flag Algorithm. Explained with playing cards.
12:11
Sort Colors - Quicksort Partition - Leetcode 75 - Python
15:48
Leetcode 46. Permutations : Introduction to backtracking
10:06
ComputerBread
Рет қаралды 87 М.
100+ Linux Things you Need to Know
12:23
Fireship
Рет қаралды 108 М.
8 patterns to solve 80% Leetcode problems
7:30
Sahil & Sarra
Рет қаралды 223 М.
LeetCode Sort Colors Solution Explained - Java
7:40
Nick White
Рет қаралды 31 М.
How I would learn Leetcode if I could start over
18:03
NeetCodeIO
Рет қаралды 301 М.
Fastest Way to Learn ANY Programming Language: 80-20 rule
8:24
Sahil & Sarra
Рет қаралды 767 М.