BS-13. Minimum days to make M bouquets | Binary Search
HTML-код
- Опубликовано: 5 окт 2024
- Problem Link: bit.ly/43ScDRY
Notes/C++/Java/Python codes: takeuforward.o...
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/take...
0:00 Introduction of Course
Not a easy problem to understand directly by reading it.. Thanks you have made it very simple.
5 mins into the video and I knew exactly how to code it up! Cheers man. This guy has some serious skills!
That's candidate master for ya.
gawd
bro literally I coded it down myself...just came here to understand the problem coz it was too complex to understand. Now i can code medium range problems by myself....sooner or later I will be able to understand the problem as well as we code further
Ya I am also facing same problem, I am also not able to understand the problem
@@danielhaag756 tell me one thing bro, i watched the video till 4-5 mins, and then i noticed that we would be doing it same way as we did in KOKO bananas, so is it fine that i watched the video till this???
how much time you takes to reach at that level and what are the hacks u have learnt that helped u ??
there is one tip i will give u see there two types of cases either you are able to solve a problem either you are not when when you are not able to solve a problem first make notes of it after watching tutorial of it and then do the same question by yourself after 7 days if u are able to do it in by your own without copying that means u actually grabbed the concept of it and it will also boost your confidence @@Vivekkumar-zc7mz
@@Vivekkumar-zc7mz there are no hacks
My strategy of following the striver sheet is that at first I try to solve the question myself and if I am unable to then I come to videos for understanding,
After reading this question on leetcode, I was clueless even about the question itself 1:35 mins into video and I have solved it on my own.
Is this magic or something? 😅
Thank you bhaiyaaaaaaaaaaa❤
exact same thing but at 2:15
currently 259 questions kar liye hai apki sheet ke , dekhte hai aur kitne kar pata hu , quality of questions awesome hai bhaiya , monotnic stacks m aur sliding windows m toh kya tagde question daal rakhe hai every question improves thinking in other direction. Ab bas graphs , greedy , trees , heaps aur strings bach raha hai usme bhi umeed hai bahut shandar questions honge. karta hu bhiaya dekhte hai kab tak khatam hogi , jab binary search kar raha tha tab i really wanted ki yeh videos ajaye but jo khud grind kiya na woh alag hi satisfaction tha. kabhi bhulayega nahi yeh questions , jitna video dekh ke bhool jaate hai. ek video ke peeche itni mehnat hoti hai itni research hoti hai , samajh agya. Waise app thoda rest bhi karliya karo aur jyada soya karo , peace of mind jyada important hai. Thank you for free knowledge 😊.
nunnu touching comment
@@krishnaramtripathi958 thanks bro BTW completed the sheet :).
@@pulkitjain5159Bro Is it possible to connect with you? I have few doubts regarding dsa.
@@pulkitjain5159 bro from where did u learn dsa
Little by little feeling confident in solving DSA problems. Thank you man!!
Thank u striver sir. Really an inspiration to me.
U know what ,I feel NOW very confident in solving the questions.
Bas logic samajh aa jaye to code to bas 5 min lagta hai.
2 days complete , now at 13th video of this playlist .
Saw the first 9 minutes of the video and able to code it by myself. Such is the clarity in his explanations. Thanks Striver.
I could not wrap my head around this problem until I saw your video, thank you!
I wasn't able to solve mid level binary search problems. Now i can easily. I can't thank you enough
you are a great striver love the way you approach problems ....... Clearly Understood
at 3:53 I understood it is binary search, implemented on my own using binary search + sliding window ....Made some modification to sliding window as window cannot be overlapped to count consecutive k elements, got overflow error while checking n< m*k ... typecasted to n< (long) m*k ,finally passed all test cases after 40min.....
Edit:
after submiting i watched video and realised its easier to implement possible function , same complexity as sliding window but i could probably code you idea faster and it is simpler XD.
Grateful for free knowledge from you.
Striver always on fire🔥❤ excellently explained 😊
A small optimization: defining long longs and checking for the condition m*k>n is not necessary,
once the binary search finishes, if m*k>n is true, then our Low pointer would point at n.
Hence at last we can just simple write:
if (low==n) return -1;
else return low;
It really isn't an optimization per se. Because if we calculate it beforehand we dont need to apply binary search at all , if(m*k>n) is true then it will straight away throw -1 whereas in your approach it would still take O(N*logN) , because it will go into binary search loop nevertheless.
how is it an optimization lol? it ulta increases the Tc.
Solved this today, 13 Dec 2023. Thank you man for making the problem a cakewalk.
It becomes easier to understand when Striver starts explaining
Only 5 mins watching and solved the Question!!
Striver you beauty!!!!!!!!!!!!!!!!!!!!!!!
UNDERSTOOD ! Instead, I solved it by my own before watching the video... Thanks to you
I forgot to write noOfB += (cnt / k); again outside the loop in possible function, and it took me so much time to solve it myself, but i was able to do it after some time. So much thanks!
Thank you striver bro I am from the south india (Tamilnadu). You are the consistency person keep it up and post videos as well. These are helpfull for us. Please made videos like this consistency.Thank you
Understood everything clearly and was able to code it myself. Thanks a lot Striver :)
Thanks it wasn't an easy problem statement to understand but after your explanation I was able to solve it on my own. 🙏
Good evening sir, this is Arijit from Kolkata. Your videos are super amazing and helpful, getting confidence in attempting leetcode problems...could even solve few of them.
Sir the purpose of this comment is, as you said in one of the TEDX videos that in your college days you used to earn through blogging...may you please suggest me some tips, how can I earn through blogging, and recommend some blogging websites from where I can earn too....
Thank you Striver bhaiya!
Completed the code without watching the video all by myself
Wow !! I am able to understand the intuition behind these problems. Excellent Problem and awesome explanation.
Best! Best! Bestest explanation ever!!
could code it by myself before reading the explanation, thanks!
Was able to code this on my own, thanks and understood clearly!
isPossible() function and taking long long as val = m*k to avoid overflow error is too tricky and helpful to understand the question clearly
Thank you so much Dada, i was able to solve it on my own by taking help from the previous question intuition
Understood! Amazing explanation as always, thank you very very much for your continuous effort!!
Great explanation. TC should include an additional O(n) to find range.
yes correct
thanks to you was able to do the problem on my own.
What a Great Approach Man
Thank you so much for the super clear explanation 🙂
thanks for the explanation definitely helped me to understand the problem!
wow! very well explained.
while solving the same problem in leetcode, i encountered a condition where the code might fail. for instance when there are enough flowers but they are not adjacent to make enough bouquets.
so during that case our low pointer will go beyond the size of the array. In order to counter that , we have to check the position of low...if the position of low > maxDay then we have to return -1 as we were not able to satisfy number of bouquets.
understood very well sir
Minor optimization in TC: Instead of taking the complete range from lowest element to the highest element, just take unique sorted elements from the array for the binary search.
This will reduce the log(max-min) complexity part to log(N),
however the space complexity will change to O(N) from O(1)
why cant we do it in a way where the possible() function would return the bouquets we are able to form and then we deal with what to do in the binary search?
Better than Paid Courses
The explanation is so good
understood
Thank you striver for such an amazing explanation...
Understand bro great teaching 👍
amazing explantion i was able to do it on my own. 😊
understood. thank you very much for this series.
Amazing Explanation 🙌❤
you are great sir
Done and Dusted !!!
Understood, coded it on my own, thanks!!
Good problem very well explained. Thanks.
understood 😇
Understood Very Well!
understood bhaiya
the opposite polarity is very useful.
Understood completely, tysmm striverrrrrr
thank you striver understood everything
happy birthday bhai bhai
Thank you sir
Best intuition
if i may once you've found out 12 (mid) is possible, why do you still need to eliminate the ranges and continue looking when it's safe to assume that since you've ordered the list the first number you found possible would be the smallest possible and u got ur answer already?
UNDERSTOOD;
Habibi tussi mast bideo banate ho
Can someone please help me understand what is polarity concept striver was talking about?
Initially low was on the not possible side and high on the possible side. This is polarity. Now as the binary search ends polarity changes i.e. low will be on possible and high on not possible.
Hi striver At 20:20 , you directly ignored less than 10 days, but what if bloom days array was something like this [7,7,7,7,13,11,12,7,7,7] In this case 2 bouquets are possible for minimum of 7 days, but we have ignored 7 days in binary search.
Bro, in your case 10 days is a possible ans, so according to binary search the ans will store 10 and try to search for a min day than 10 (right half is ignored). Hope it helps
Understood :) Thank you so much
Understood!
Understood sir!
understood!
Love from Mysore ❤
Keep going thanks alot
he is a fire❤🔥❤🔥❤🔥❤🔥❤🔥
are we not going to add TC of finding max and min of the array??
O((log(max-min))*n) is greater than n. So we ignore the shorter time complexity.
Understood !! 😎😎
Done
Thank you bhaiya
UNDERSTOOD 🥰
i have an doubt as calculated time complexity is O(n log(min-max+1)) but initially we have to find the max and min which takes O(n) then why aren't we adding that to our final TC?
Time Complexity : [ O(n) +O(n) + O(n log(max-min+1)) ] approximately equals to O(n log(max-min+1) but for Brute force it is O( (max-min+1)*n).
Understood
Can we solve this as multiple peak points
why T.C is log( n*(max-min+1)) but not nlog(max-min+1) . IS BOTH SAME???
Understood✅🔥🔥
amazing sir
Legendary boss
understoood
simply binary search is converting o(n2) solution to o(nlogn) solution
understood!!!
thanks for the video mate
easy but question was quite hard to understand.
Understood!
Understood ❤
Thank you
nice one
UNDERSTOOD
return low karne se ek testcase jismein maximum=minimum element hai array mein wrong ho jaa rha hai answer
It's like mixed form of binary with kadane
if(fuls==k) // used this if statement instead of that else statement in function , it is simply checking that if flower are equal to k then increment bouq and reset flower=0
{
bouq++;
fuls=0;
} // why this if statement work only for first 7 test case
can we solve this problem by sorting the array an then applying binary search logic ???