BS-21. Median of two Sorted Arrays of Different Sizes | Binary Search Approach With Intuition
Vložit
- čas přidán 20. 07. 2024
- Problem Link: bit.ly/43QDw96
Brute and Better: • BS 21: Median of two S...
Notes/C++/Java/Python codes:
We have solved the problem, and we have gone from brute force and ended with the most optimal solution. Every approach's code has been written in the video itself. Also, we have covered the algorithm with intuition.
Full Course: bit.ly/tufA2ZYt
You can follow me across social media, all my handles are below:
Linkedin/Instagram/Telegram: linktr.ee/takeUforward
0:00 Introduction of Course
There is no way that you can come up with this optimal solution in an interview. Although the better solution using merge procedure from merge sort was pretty thinkable and doable but this is a completely genius solution !!!
I came up with it on my own when solving it on Leetcode. Let’s be honest, the main idea is not very hard. But my problem was the actual implementation. You can see in the video just how many random +1 and -1 we need, as well as boundary checks. It’s crazy. I hoped Striver would find a way to make the code less ugly - sadly, no. The problem is just inherently very annoying
@@titusandronikus1337 Really glad that you were able to come with the optimal solution on your own !!!!
I came up with different approach on this one when solving on my own. It's similar to what we do in matrix's binary search I guess ( I have not watched striver's videos on it). Basically searching for kth element in any sorted arrays. It took O( log(m*n)*log(max-min)) time complexity, pretty big but it's in log and was accepted in leetcode.
@@titusandronikus1337 same thought process is thinkable but seriously the implementation is though,hoestly i didnt understand fully
@abhik6400 can u tell how it is doable from merge sort???
I am so dumb even after solving good number of questions on leetcode I even could not even think of like this.
The going into recursion for swapping idea was 🔥
can you explain why he does that?? or we also use min(n1,n2) but it gives runtime error why??
@@easylearn8924 the idea is to do a binary search over the smaller-size array. while loop is written based on that and that's why using min(n1,n2) would give you error.
ok thanks@@tovenkatesh82
@@easylearn8924 If we do that that's also possible but the code complexity will be too large and the std. while loop of binary search won't work even I understood after that video.
why it won't work in while loop can you explain?? because i able to understand but after sometime i confused in this part??@@ashish4k07
He has already explained this in sde sheet but still he made a video for a2z sheet💯
On which sheet has he explained this ? can you give me the link. Thanks
@@farazahmed7maybe from his sde sheet for placements
@@farazahmed7 i think he is talking about the placement series or the sde sheet of 180 questions he made long time ago, you should check that out.
Striver you are a real social reformer.
At times when colleges are rendering students unemployable , you are making us industry ready.
Dude Hats off to you.
If i hadn't checked this video there is no way i would be able to think of this solution in interview
Thanks...
Waiting for this one for a long time no one explained this problem this well , Thank you.
Watched both videos twice ,all 3 approaches are crystal clear now,thank you!
I wanna know, how you built your logic and how you became an expert in understanding this logic so well. I have been following your playlist for a couple of months and understood each problem so well. What steps do you follow in your initial stage to reach this point? Please help so that your valuable tips can help me crack coding interviews. Trust me you are simply Amazing and Genius :)
best video of entire playlist. I never understood this problem's binary search approach earlier, but you solved it so well. And that idea to call that function again if sizeof(b)
Why we need to do that ?
Can you explain
@@user-cd7lf8nk4cIt might possible that the first array has greater size,so in order to take the shorter array to proceed he did it, hence TC : O(log(min(n1,n2)))
That swapping of the inputs and >>1 steps are 🔥 🔥
bit manupulation and swapping is to low so yeah it improves time mostly
Such a thorough explanation! Exactly what I needed to help me understand this problem. Great energy throughout and the lesson was clearly well prepared and organized to educate and enlighten. Thank you!
This is one of the bestest explanations I have come across. Totally cleared my concept. Thanks a lot sir !
After watching so many videos i actully the found the gem which resolved my all the doubts in such a nice and simple way.
Understood. GOod video striver. It's important to watch these important questions because it is not possible to invent these kind of solutions then and there itself.
Crystal clear explanation. Explained your heart out. Thank you :)
Best video explanation of this problem on the whole internet.
Understood! Super amazing explanation as always thank you very very much for your effort!!
TOP notch explanation striver. I saw both videos. Understood completerly. Thank you.
Once again, your explanation is top-notch.
What a energy !
Thank you striver for amazing content 🙇
This is the first video that I have not understood of you. No matter how many times I watch I just can't understand. I'm just skipping this optimal approach for now. :)
You deeply understand the problem and explain the solution well. Thanks.
brilliant explanation. even hard topics seem easy when you explain them.
brilliant explanation, this problem is not only hard to do but also hard to explain
I shocked at the end of video after seeing the way you explained this complex optimal solution!!!!
Thanks a lot!❤🔥💥❤💯
The king of coding community 👑
UNDERSTOOD..........Thank You So Much for this wonderful video................🙏🏻🙏🏻🙏🏻🙏🏻🙏🏻🙏🏻
Thanks striver to explain this . I was thinking that this is too much difficult concept but after watching this video , I can do the similar stuff myself. Thank you so much
Amazing, how you observe so minutely :) Bhai Hat's Off .
I did it using the approach of two sorted lists question and got 2ms solution. But this is better
Brilliantly explained!!
Understood!! Amazing explanation
Really wonderful approach and explanation
I still can't imagine how would someone think of such an optimal solution? It's out of mind. Are we expected to think of such optimal soln? I'm asking this bcz, it took me lot of time to understand this soln even after a great explanation...
Thank you striver for such a wonderful explanation !
At 17:57 shouldn't it be l1 > r2?
Same thing i was thinkking
Maybe it will help :)
int mid2 = left - mid1; // left = how many elements i can pickup mid1 = how many i have picked up
Great explaination..Thank you.💯
Wow explanations. Big Thanks to Striver.
1 morning i would woke up and see striver had completed a2z series and i got my dream company.
Thanks Bhai. Its a tough question, but explained it very nicely.
Amazing Explanation! Thanks!
Hats off to you Broh... THANKS A MILLION 💙💙💙
Great explanation. Thank you ❤
Excellent explanation!!💌
Thank u for doing things for us even in ur busy days...❤
"Busy" are those People who disrespect others, People who respect are not Busy ❤
At first the brain wasn't braining but got it at the end great explanation
Thank you so much broo for these series ☺️
I have also solved this but using another method:
Approach was to iterate one smaller array from 1 to n and applying binary search and insert the element into another vector using bs.
great explanation buddy. Keep up the good work.
your explanation is awesome 😇😇. Finally i can rest in peace🙃
Loved this approach❤
awesome explanation
Thank you Striver sir 🥰
Thank you Striver💖💖
before watching this intution , my favourite intution was dutch national flag algo,,, but this question along with its explanation was beyond my imagination,,,, hats off to you.......and your expression after completing this ques shows how passionate you are about your work and this gives us too much motivation,,,thank you😇😇
bro..how will you use dutch national flag algo for this question?
@@arjunc1482 I am not saying I will use duch algo here,,, I have just stated among all algo/intuitions duch algo and it's question was my fav,,, but after watching this question and it's soln , it is my fav now
The idea clicked the moment he said how many elemts to pick from both the arrays.
Started coding it and damn it was tough to code it (edge cases 💀)
17:55 l1 > r2
great video, thanks for this
this tutorial is awesome, thanks for this :)
This is a little bit too much for me to digest, but at least I understood most of it.🙂
Hi Striver, It was a great explanation. Thank you !!
Can you please explain that, why are taking first vector is always smaller?
CLEAN AS ALWAYS
very well explained!!!
Understood! Thanks!!
Brilliant. Thanks!
I think the time complexity is not the only reason why you should do a binary search on an array whose size is smaller. If you will do a binary search on the array with a bigger size, then you will not be able to construct the first array (left partition) to make two arrays asymmetrical
brilliant explanation
Understood, thank you.
Best Explanation!!
17:52 l1 is greater than r2 (correction)
Awesome !👍
Mind blowing video❤
Understood salute to striver🤓
Great.. You are the best
hats of to your efforts
great explanation
Finally Understood man.
why can't we take this case to eliminate right?
if(l1 > r2 || l2 > r1) high = mid - 1;
Understood bhaiya 😊
i think so to find out left we can use (n1+n2)/2 and change median as min(r1,r2) nothing much difference right??
Thank you, Sir ! :)
Understood, Thank U
Loved it!
one of best video on yt
hello
@takeUforward, @30.01 generally in Binary search of array we consider left =0 and right=array.size()-1 correct?
But here why have you considered low =0 and high=n1 ( which is array size itself) not n1-1?
Yes because it means how many elements we take, either we can take 0 elements or we can take all which is n1
i tried to do it in zero-based. if e.g nums1=[1,3] nums2 = [2].
arr1Left = 2,
arr1Right = inf,
arr2Left = -inf,
arr2Right = 1.
arr1Left
understood. Thanks
very helpful thanks bhaiya
really well understood
it was superb................
l1 should be greater than r2 right at 17:49 ?
Yup
Understood!!!!
Thank you striver sir
thankyou. this is best
over the top bhaiya
Thank you so much sir
Thank you
Understood ❤
Understood sir!!
Understood✅🔥🔥