Тёмный

Egg Dropping Problem: Dynamic Programming Fundamentals & Understanding Subproblem Decomposition 

Back To Back SWE
Подписаться 240 тыс.
Просмотров 109 тыс.
50% 1

Free 5-Day Mini-Course: backtobackswe.com
Try Our Full Platform: backtobackswe.com/pricing
📹 Intuitive Video Explanations
🏃 Run Code As You Learn
💾 Save Progress
❓New Unseen Questions
🔎 Get All Solutions
Question: You are given n eggs and specified a number of k floors. Write an algorithm to find the minimum number of drops is required to know the floor from which if the egg is dropped, it will break.
Note: There are more optimal solutions than this approach, but in a 45-minute interview they seem to me unreasonable to get. So I covered what one could reasonably deduce given they have never seen this question.
Complexities
Time: O( totalEggs * totalFloors^2 )
We will have totalEggs * totalFloors subproblems and spend O(totalFloors) time computing each subproblem.
Space: O( totalEggs * totalFloors )
We can upper bound to the number of subproblems which will be totalEggs * totalFloors subproblems (whether you include the base cases or not in the memoization table)
++++++++++++++++++++++++++++++++++++++++++++++++++
HackerRank: / @hackerrankofficial
Tuschar Roy: / tusharroy2525
GeeksForGeeks: / @geeksforgeeksvideos
Jarvis Johnson: / vsympathyv
Success In Tech: / @successintech

Наука

Опубликовано:

 

10 авг 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 458   
@BackToBackSWE
@BackToBackSWE 5 лет назад
Table of Contents: Intro 0:00 - 0:24 The Problem Introduction 0:24 - 2:39 Base Case #1: 1 Egg 2:39 - 6:21 Base Case #2: 0 or 1 Floors 6:21 - 8:47 Summarizing Our Base Cases 8:47 - 10:18 The Simulation. 6 Floors, 3 Eggs 10:18 - 18:36 DP Table Walkthrough 18:36 - 22:06 Camera Dies. Finishing Explanation of The Simulation. 22:06 - 23:30 Time Complexity 23:30 - 24:12 Space Complexity 24:12 - 24:51 Wrap Up 24:51 - 25:19 Update 4/3/19: Both the Top Down & Bottom Up approaches shown in the video time out on Leetcode due to the test cases changing. The code for the problem is in the description (both bottom up and top down). Fully commented for understanding.
@fpv_am
@fpv_am 5 лет назад
Bro, just, aaaaaaaaaaaaaaaaaaah, just, aaaaaaaaaaaaaaaaaa, just, I applause you, thank youuuuuuuuuuuuuuuuuuuuuuu, brooo, I just cant express my feelings, aaaaaaa its so coooooooooooooool, I understood it!
@BackToBackSWE
@BackToBackSWE 4 года назад
yeah
@BackToBackSWE
@BackToBackSWE 4 года назад
hahahaha nice
@monil1601
@monil1601 4 года назад
Yep, I got that but what's the recurrence relation for construction of the DP table? If we denote optimal solution by OPT(m,n) where we have m eggs and n floors then how will we write it in terms of recurrence ?
@BackToBackSWE
@BackToBackSWE 4 года назад
@@monil1601 I don't remember
@airysm
@airysm 5 лет назад
These are some strong ass eggs
@BackToBackSWE
@BackToBackSWE 5 лет назад
agreed
@raymondyoo5461
@raymondyoo5461 5 лет назад
LOL
@ahmedboutaraa8771
@ahmedboutaraa8771 4 года назад
your channel is like a NETFLIX of DS & algorithms. whenever i try to watch one of your videos i found 10 more intriguing ones
@BackToBackSWE
@BackToBackSWE 4 года назад
haha nice
@chanman123
@chanman123 5 лет назад
Just wanted to say how much I appreciate these videos. You're really doing a great job of helping all of us out here and I can't thank you enough!
@BackToBackSWE
@BackToBackSWE 5 лет назад
I have to feed the family. Everyone eats. Otherwise, I'm starving.
@itsrahulraj
@itsrahulraj 3 года назад
I have been watching your videos recently and cant thank you enough for explaining hard puzzles in a layman's language. I haven't seen anyone who explain the actual "purpose" of the problem as you do. Well done and keep posting :)
@studgaming6160
@studgaming6160 5 лет назад
I have watched several videos but none of them was as good as this one. Awesome job dude. Thank U. All the videos talk about solution without explaining subproblems of dynamic programming. But you explained it really well my friend.
@BackToBackSWE
@BackToBackSWE 5 лет назад
nice
@kuralamuthankathirvelan
@kuralamuthankathirvelan 5 лет назад
One (Back To Back SWE) video per day keeps tushar roy away !🤣🤣🤣
@BackToBackSWE
@BackToBackSWE 5 лет назад
hahaha CALM DOWN
@karthikrangaraju9421
@karthikrangaraju9421 4 года назад
Respect for both, for the lack of good dynamic programming videos, Tushar pioneered it well imo. Ben is teaching it better with the intuition behind things, can’t deny that either :)
@anunaysharma2718
@anunaysharma2718 3 года назад
@@abhimishra2276 what's wrong with them?
@ritwik121
@ritwik121 3 года назад
@@abhimishra2276 abdul bari is good
@abhimishra2276
@abhimishra2276 3 года назад
@@ritwik121 yes bro i was so wrong he is amazing
@chaitanyapvs4150
@chaitanyapvs4150 4 года назад
Its nice to find a video explaining way of approach rather than repeating the dp tables from solutions.Thanks man.
@BackToBackSWE
@BackToBackSWE 4 года назад
sure
@chetansahu1505
@chetansahu1505 4 года назад
You are the best mentor that I've ever seen in my life. You can even make a fool understand the complex concepts. (y) keep up the work bro :)
@BackToBackSWE
@BackToBackSWE 4 года назад
hahaha, u gonna be a genius
@rakeshsinha9541
@rakeshsinha9541 4 года назад
I Really like the way how you're explaining the problem thoroughly
@BackToBackSWE
@BackToBackSWE 4 года назад
thx
@martinberridge9173
@martinberridge9173 4 года назад
These videos are the best I've seen on algorithms/problem solving on RU-vid. Not code walkthroughs or dry mathematical proofs just the facts!
@BackToBackSWE
@BackToBackSWE 4 года назад
thx!
@vaibhavlodha5398
@vaibhavlodha5398 5 лет назад
Thank you very much for these videos, they are really great. I seriously have no words to express my gratitude for these wonderful videos. Great job !
@BackToBackSWE
@BackToBackSWE 5 лет назад
Say no words, let it be :) As a wise man once said: "Let it be, let it be, let it be, let it be There will be an answer, let it be" - Wayne Gretzky
@MMOlocation
@MMOlocation 5 лет назад
Thank you so much for your effort. You can't even imagine how much these help.
@BackToBackSWE
@BackToBackSWE 5 лет назад
nice
@ruchadeodhar1708
@ruchadeodhar1708 5 лет назад
Awesome explanation !! Thank you so so much!
@BackToBackSWE
@BackToBackSWE 4 года назад
sure
@vibekdutta6539
@vibekdutta6539 5 лет назад
You are really gr8, thanks sir! I hope you do Great things in life! Respect
@BackToBackSWE
@BackToBackSWE 5 лет назад
sure thx
@codetolive27
@codetolive27 5 лет назад
It's very clear that you have put in a lot of effort to come up detailed explanation. Thank you keep up the good work.
@BackToBackSWE
@BackToBackSWE 5 лет назад
thanks
@krishnakrmahto97
@krishnakrmahto97 5 лет назад
I can see the amount of effort you've been putting on your videos. This is what I had been looking for the last 2 years. I feel very lucky that you started making videos before I graduate.
@BackToBackSWE
@BackToBackSWE 5 лет назад
dang...that's a long search hahaha, and thanks haha...more are a comin'
@krishnakrmahto97
@krishnakrmahto97 5 лет назад
@@BackToBackSWE looking forward to all of 'em!
@BackToBackSWE
@BackToBackSWE 5 лет назад
@@krishnakrmahto97 nice
@hamidurrahman3183
@hamidurrahman3183 5 лет назад
Thank you, Lord. Finally found a video that can help. I wish I had this person teaching my algorithm class instead of my prof who looks at her notes and talks to the board.
@BackToBackSWE
@BackToBackSWE 5 лет назад
Hahahahahaha. Yes.
@tanvirarjel
@tanvirarjel 2 года назад
One of the best explanations for this problem on the internet. ❤
@zehrasubas9768
@zehrasubas9768 4 года назад
Watched so many videos about this problem and got confused, this video made everything clear!
@BackToBackSWE
@BackToBackSWE 4 года назад
nice
@tejasghone5118
@tejasghone5118 4 года назад
Great clarification of the problem!! This was my 3rd vdeo for the egg problem and now i am satisfied!
@BackToBackSWE
@BackToBackSWE 4 года назад
great
@rati396
@rati396 5 лет назад
very good and detailed explanation , thank you !
@BackToBackSWE
@BackToBackSWE 5 лет назад
sure
@shashikantpunia9019
@shashikantpunia9019 4 года назад
how easily i understood that tough problem signifies that level of teaching of ben...he has fabulous teaching skills.
@BackToBackSWE
@BackToBackSWE 4 года назад
thanks
@ShaliniNegi24
@ShaliniNegi24 4 года назад
One of the best explanation. Thank you, sir!
@BackToBackSWE
@BackToBackSWE 4 года назад
thanks and sure
@dongshuowu3454
@dongshuowu3454 5 лет назад
I couldn't believe this amazing channel only has 13K subs.
@BackToBackSWE
@BackToBackSWE 5 лет назад
Aw, thanks. I work pretty hard on this. I hope it grows. I've put my life into this.
@bddyonetim539
@bddyonetim539 5 лет назад
@@BackToBackSWE It is the greatest channel that I have found out...Thanks a lot...
@yashshreeshinde4394
@yashshreeshinde4394 3 года назад
Your teaching are very clean and understandable ,I am glad to get a teacher like you in my journey of career.You deserve more subscribers.Good luck ,keep it up!🌈✨
@BackToBackSWE
@BackToBackSWE 3 года назад
thx!
@priyanktewari8841
@priyanktewari8841 4 года назад
Too good bro! Dead camera was a bummer but great explanation!
@BackToBackSWE
@BackToBackSWE 4 года назад
haha
@hoelefouk
@hoelefouk 4 года назад
Keep up the good work and keep making our life easier!!
@BackToBackSWE
@BackToBackSWE 4 года назад
ok
@UnseenVivekC
@UnseenVivekC 5 лет назад
I have been trying to understand this problem through many YoutTubers,but lemme tell you Sir, this is the best explanation I had. Keep the work up Sir.
@BackToBackSWE
@BackToBackSWE 5 лет назад
thank you. stay around. we got a long road ahead
@UnseenVivekC
@UnseenVivekC 5 лет назад
@@BackToBackSWE Yes, sir I will.
@BackToBackSWE
@BackToBackSWE 5 лет назад
@@UnseenVivekC haha ok
@allezzthepunk
@allezzthepunk 3 года назад
I am almost in tears for how good this is explained
@erichlf
@erichlf 4 года назад
By far the best explanation of the egg drop problem I have come across.
@BackToBackSWE
@BackToBackSWE 4 года назад
thx
@overclockinggames2419
@overclockinggames2419 4 года назад
I want to see you and Tushar in one frame 😂. Anyways amazing explanation as always .
@BackToBackSWE
@BackToBackSWE 4 года назад
ok
@hunterhe5161
@hunterhe5161 5 лет назад
amazing!You are a good teacher.Thank you.
@BackToBackSWE
@BackToBackSWE 5 лет назад
thx
@faridashaikh9773
@faridashaikh9773 3 года назад
I really like the way you teach, with so much clarity and to the point... Keep going 💪 Thankyou
@BackToBackSWE
@BackToBackSWE 3 года назад
thx
@al-farouksaleh2144
@al-farouksaleh2144 4 года назад
Where are the codes dude, we really need them. Ps: you’re a life saver, keep going ✌🏻💙
@BackToBackSWE
@BackToBackSWE 4 года назад
thanks and we only maintain code on backtobackswe.com
@rashim
@rashim 4 года назад
Here's the code link: ru-vid.com?q=https%3A%2F%2Fgithub.com%2Fbephrem1%2Fbacktobackswe%2Ftree%2Fmaster%2FDynamic%2520Programming%252C%2520Recursion%252C%2520%2526%2520Backtracking%2FEggDrop&redir_token=QUFFLUhqbnQ3T2tXamxoVTh5c205TlJCYjZCYmZsOWNjZ3xBQ3Jtc0trODRCQlRicjVIbXh0dXk5VEhrel9QQkZUNXFRamMzSVdablYxLUE5aVk3RGxrRUFOMjNTQkRWSk1qeFlrcVk1cEVIUU51b3E5X3dtSXh2M0FGcmxPY0ZiUFU5eTU4YjhuMDZYckl3YXNDeTQ2UFJIQQ%3D%3D&event=comments&stzid=UgzKhQ0U7vTf35sZifd4AaABAg
@sehejwahla410
@sehejwahla410 4 года назад
Great work bro !! God bless you !!
@BackToBackSWE
@BackToBackSWE 4 года назад
sure
@vijay6877
@vijay6877 3 года назад
Loved your video. Thank you so much.
@Ashish-_-
@Ashish-_- 5 лет назад
I want to thank you sir for you really put in so much effort into these videos.I like the fact that you provide links to other channels too ( Like Tushar Roy etc).
@BackToBackSWE
@BackToBackSWE 5 лет назад
yeah haha, this is meant to be a resource of many
@itslucaxbitch69
@itslucaxbitch69 5 лет назад
How can I not understand if you teach this so beautifully!
@BackToBackSWE
@BackToBackSWE 5 лет назад
haha thanks
@MithleshKumar-iz1dz
@MithleshKumar-iz1dz 5 лет назад
Thanks a lot, BTB SWE for crystal clear explanation, I always think in a Top to Down DP approach but always got confused in Bottom Up DP. Can you people make another separate video for thinking ina bottom up DP please?
@BackToBackSWE
@BackToBackSWE 5 лет назад
Yes. I will address this in a video similar to this: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-Zq4upTEaQyM.html one day. Don't worry, as long as this project stays active I will cover what people want to see.
@aamirjamal6833
@aamirjamal6833 4 года назад
These have to be some hard ass eggs man.. Thanks for the lucid explanation bro..
@BackToBackSWE
@BackToBackSWE 4 года назад
ye
@vicliur2
@vicliur2 4 года назад
Wow Thanks for the explanation man!
@BackToBackSWE
@BackToBackSWE 4 года назад
sure!
@Pickyricky69420
@Pickyricky69420 3 года назад
My GUY!!! You are brilliant! I will invest my tuition to a service you provide. Take my money!
@tastypie2276
@tastypie2276 Год назад
Sir, you're one of the best algorithm teachers I've ever seen! Your explanations are really fascinating!
@BackToBackSWE
@BackToBackSWE Год назад
Thank you, appreciate it 😄 Also check out our Free 5 Day DSA Interview Prep Mini-Course - backtobackswe.com/ 🎉
@vedantverma5185
@vedantverma5185 2 года назад
Commendable explanation !
@chaithanyavarma7618
@chaithanyavarma7618 2 года назад
Just Brilliant!!
@prabhpreetsingh5341
@prabhpreetsingh5341 4 года назад
Its my first time watching your video and I gotta tell it "MAN U HAVE EARNED MY RESPECT" seriously man can just emphazize on how much easy u did this to me . . Just a single problem ... ur code link redirects to a page not found ... look up for that
@BackToBackSWE
@BackToBackSWE 4 года назад
Thanks and got it
@cristianouzumaki2455
@cristianouzumaki2455 4 года назад
after watching several videos on this topic, this video proved out to be the best as always. explanations were very clear although the hiccup in the end disrupted the flow.
@BackToBackSWE
@BackToBackSWE 4 года назад
thx
@bruriahassidim8369
@bruriahassidim8369 4 года назад
Thank you very much for these videos really helpful! just one question. I get it when we have one egg, so we just go one floor upwards at each time and if it breaks we know it's one floor below but how does having more eggs help me? am I throwing from a few more floors at the same time? I am missing something
@BackToBackSWE
@BackToBackSWE 4 года назад
A few more eggs would allow us to not have to drop every floor up to the breaking floor
@karmavadaa
@karmavadaa 3 года назад
Great explanation!! Egg Drops, from floor’s and not breaking its unsettling though!! Going to think of it as Coconut Drop 😐
@user-jq1jx1lg8v
@user-jq1jx1lg8v 2 года назад
Best explanation ever!
@matthewbuchholz5251
@matthewbuchholz5251 3 года назад
I know this would be a difficult one to make, but you should make a video going over techniques for identifying overlapping subproblems and optimal substructure in DP problems in general. Pulling from examples like this and longest non-decreasing subsequence (and your other vids). Basically, abstracting the problem specific examples and giving some practical tips for how to identify subproblems. Fingers crossed xD
@BackToBackSWE
@BackToBackSWE 3 года назад
ok
@christofrank4862
@christofrank4862 4 года назад
Amazing bro!!...
@BackToBackSWE
@BackToBackSWE 4 года назад
thanks
@adnanmasroor742
@adnanmasroor742 3 года назад
finally I am beginning to understand the problem!!
@anonymousvoid6356
@anonymousvoid6356 2 года назад
Nice explanation man!
@mrinaldhawan3959
@mrinaldhawan3959 5 лет назад
Your channel is great and really helping me with learning and understanding Dynamic Programming. I wanted to know, can this problem be solved optimally using Jump Search Algorithm?
@BackToBackSWE
@BackToBackSWE 5 лет назад
thanks and not sure, I've never heard of Jump Search
@mrinaldhawan3959
@mrinaldhawan3959 5 лет назад
www.google.com/amp/s/www.geeksforgeeks.org/jump-search/amp/
@orion_222
@orion_222 Год назад
well explained.
@danneal3735
@danneal3735 4 года назад
Thank you very much
@BackToBackSWE
@BackToBackSWE 4 года назад
sure
@thanga2317
@thanga2317 5 лет назад
Thanks again :)
@BackToBackSWE
@BackToBackSWE 5 лет назад
sure
@ChainForLife
@ChainForLife 5 лет назад
Hey great video, just a quick question, why is it that the minimum amount of egg drops for n floors is n? Wouldn't it be log(n) times since we can do sort of a binary search where we drop an egg from (n/2)th floor and if it breaks we know every egg dropped from above that floor will break and if it doesn't break we know that every egg dropped from below that floor won't break ?
@BackToBackSWE
@BackToBackSWE 5 лет назад
We can do it logarithmically, that is the next best solution. I just presented the base solution that someone could practically come up with in an interview.
@ChainForLife
@ChainForLife 5 лет назад
@@BackToBackSWE I see. Can I ask you just one more question? Why is it that we want the worst outcome of the drops, that is max(drop(eggs, totalFloor - currentFloor), drop(eggs - 1, currentFloor - 1)) ? This part still doesn't seem to click in my head.
@BackToBackSWE
@BackToBackSWE 5 лет назад
@@ChainForLife Never limit questions. Always ask questions until you understand. Push the teacher as well as yourself because I don't know it all...or else we both learn nothing. So think about this....our goal is to tell the caller the SMALLEST amount of drops so that I can PROMISE that in those drops...I will find the pivotal floor. If I don't account for the worst outcome of drops...I could be lying...my promise could be broken. I have to take into account the WORST outcome and BOUND my drops to that because it promises that I find the pivotal floor in that amount of drops NO MATTER WHAT CASE happens. Does that make sense?
@ChainForLife
@ChainForLife 5 лет назад
@@BackToBackSWE Yes sir, that last sentence pretty much made it crystal clear for me.
@BackToBackSWE
@BackToBackSWE 5 лет назад
@@ChainForLife Ok, cool, haha don't "sir" me...I'm just a dude...a normal guy.
@poojaguru2516
@poojaguru2516 5 лет назад
You are the best! :)
@BackToBackSWE
@BackToBackSWE 5 лет назад
sure
@lilzjay9732
@lilzjay9732 5 лет назад
you help me a lot
@BackToBackSWE
@BackToBackSWE 5 лет назад
that's what I do
@navaneethakrishnanp8400
@navaneethakrishnanp8400 5 лет назад
Great explanation
@BackToBackSWE
@BackToBackSWE 5 лет назад
thanks
@akshatsamdani
@akshatsamdani Год назад
Can't find the code in the description. Also, not available on the site. :(
@chakshujain7557
@chakshujain7557 4 года назад
I don't know but I really like watching your videos. Feels so much satisfaction.
@BackToBackSWE
@BackToBackSWE 4 года назад
thanks
@Dal.alef.
@Dal.alef. 4 года назад
Watched it while on the treadmill, nicely explained, just wish your cam didn't die
@BackToBackSWE
@BackToBackSWE 4 года назад
lmao nice
@varunagarwal5189
@varunagarwal5189 4 года назад
best explanation to this problem so far
@BackToBackSWE
@BackToBackSWE 4 года назад
thanks
@raymondyoo5461
@raymondyoo5461 5 лет назад
I know you have your own plan, but I have a suggestion. Recently I started learning 'parametric search' and I find it tricky. -> what is the proper condition to be put in "while( )" ??? -> when do I put '=' on "if (K < mid)", and when do I put '=' on "if (mid < K)" ??? I don't wanna break your pace, just wanted to give you an idea. thx!
@BackToBackSWE
@BackToBackSWE 5 лет назад
Not familiar with parametric search. Is it related to binary search?
@raymondyoo5461
@raymondyoo5461 5 лет назад
@@BackToBackSWE I heard it is highly relevant to binary search. I found some example questions, I'll add the links here. Question 1 ) hsin.hr/coci/archive/2011_2012/contest5_tasks.pdf -- Question #2 (It starts with the sentence "Lumberjack Mirko needs to chop down M metres of wood....") Question 2 ) www.acmicpc.net/problem/3703 Question 3 ) poj.org/problem?id=3273 I think I can solve above questions applying binary search... Do you agree? Or any better method to solve them???
@jiaonao5463
@jiaonao5463 3 года назад
cool! good video!
@thanga2317
@thanga2317 3 года назад
Thanks for the detailed explanation : // if egg breaks then egg-1 and floor -1 ==> dp[e - 1][k - 1] // else no change in egg count and remaining floors which is f-k ==> dp[e][f - k] // k means which floor we are in -- > first floor , second floor // 2 Eggs -> 3 Floors // • 2 Eggs -> lets try from 1st Floor-> 1,0 ,, 2,2 // • 2 Eggs -> lets try from 2nd Floor -> 1,1 ,, 2,1 // 2 Eggs -> lets try from 3rd Floor -> 1,2 ,, 2,0
@cautioni
@cautioni 3 года назад
where is the link to your code?
@tirthjayswal9895
@tirthjayswal9895 4 года назад
that was hilarious LOL..my cemera died
@BackToBackSWE
@BackToBackSWE 4 года назад
yeah it did
@vaibhavsinha2728
@vaibhavsinha2728 3 года назад
Where is the code , please help me to find it...
@anmoljhanwar5843
@anmoljhanwar5843 3 года назад
I am unable to find the implemented code in description .Where should i be looking?
@markfishman5242
@markfishman5242 5 лет назад
good video. I was with you until min 20:47. Why do you have drop (2,1) in addition to drop (2,2). I get the 2,2 one, but since 2 eggs,1 floor cell was a 1, why that one ?
@BackToBackSWE
@BackToBackSWE 5 лет назад
I fudged making that part clear - I remember this vividly, I'd go in and explain but I'm rapid fire responding to 250 comments I got backed up after 2 weeks
@jomosis9234
@jomosis9234 4 года назад
In the case (2,1), you are on the Floor 1,just by using one egg, you would know which floor is the "won't break"(I will use F below) floor. If the egg breaks on Floor 1, then "F" floor will be Floor 0. Otherwise will be Floor 1. Only Floor 1 and Floor 0 are to be discussed in case(2,1). totalFloor = 1 is a base case, no matter how many eggs there are, the answer is always 1.
@VocalWithShubham
@VocalWithShubham 4 года назад
Hi Benyam, I just want to say that can you make a video that explains the optimal version of this algorithm with takes O(totalEggs*totalFloors) time or any lesser time because this code showing TLE in interviewbit and leetcode as they both have large input constraints. I can't able to understand their solution and also there is no video that explains that optimized solution.
@BackToBackSWE
@BackToBackSWE 4 года назад
I currently cannot due to time constraints Im sorry
@palashkamble2325
@palashkamble2325 4 года назад
Hey, can you make a video for O(K*log N) approach?
@BackToBackSWE
@BackToBackSWE 4 года назад
Right now cannot but would if I had the time
@ArshilGenius
@ArshilGenius 5 лет назад
Thankssss!!!!!!!!!!
@BackToBackSWE
@BackToBackSWE 5 лет назад
sure
@FloShaban
@FloShaban 5 лет назад
Great job, you deserve more subs than most others who do these type of videos. However, can you go in depth a bit on what you'd need to simulate all of the floors? Why can't you just start branching from 6 floors, 3 eggs?
@BackToBackSWE
@BackToBackSWE 5 лет назад
We do. To solve the subproblem you just stated: drop(3, 6) -> we need to imagine, just imagine...that we start dropping from floor 1 with 3 eggs, floor 2 with 3 eggs, floor 3 with 3 eggs, floor 4 with 3 eggs, etc. At each simulation, we want to know the 2 possibilities. What do they yield in terms of worst drops. This is how we converge to base cases. Now, to your question. Why simulate? Well...what was the original question: "You are given n eggs and specified a number of k floors. Write an algorithm to find the minimum number of drops is required to know the floor from which if the egg is dropped, it will break." How can I know FOR SURE...for sure...the MINIMUM # of drops to find the pivotal floor? Well for the solution presented (and there are others) we do a test from each floor and find the WORST performer. This worst performance is a possible reality. We must account for it. And thus, we take this worst reality/outcome AFTER DROPPING. After dropping. If we miss out on any simulation we will miss a possible outcome that may worsen our worst case. This brings me to why we add 1. The +1 is because we want to say that "The answer where I stand is the action I take, plus the result of the worst outcome that follows." the action. A drop. +1 to the worst case drops. the result. That is the worst subproblem result that happens after our action. I could keep going but check the code in the description. Keep asking questions. I have answers...most of the time.
@Maholain
@Maholain 5 лет назад
Here's another way to look at it: think about every call to drop(eggs, floor) as literally throwing one of your eggs down from the chosen floor. So if you computed drop(3, 6) by only considering the 6th floor (instead of testing all the floors), what you are saying is - what is the minimum number of times I need to throw eggs off of floors to find the first floor it breaks... *given that you threw your FIRST egg off the 6th floor?* As you can imagine, we might be able to reduce the number of drops in the worst case by dropping the FIRST egg off, say, the third floor - (drop(3, 3)) - if it breaks, you've eliminated the top half of floors, and if it doesn't, you've eliminated the bottom half (had we just thrown it off the highest floor each time, if the egg breaks, we would have only eliminated one floor; if the egg broke from that floor, only one more floor, and so on). Of course, we don't really know which floor to drop off first to minimize the number of drops, so we try each floor. This reflects the floor we should throw our egg off first!
@FloShaban
@FloShaban 5 лет назад
@@Maholain Thank you, and thank you both. :)
@BackToBackSWE
@BackToBackSWE 5 лет назад
@@FloShaban I still feel like I could've made it clearer...oh well. There are better solutions but I just covered the most basic solution one would realistically get with previous dp experience.
@Skaguc
@Skaguc 2 года назад
Hey, thanks for the explanation! The cases where the egg breaks seems logical, but I don't get the case where the egg doesn't break. If the egg doesn't break on floor 5 why i can use the function for 6-5 = 1 floor? When the egg survives the fall from floor 5, it must also stay unharmed when dropped from floor 1...
@norbertnemesh
@norbertnemesh 2 года назад
Replace egg with ball and this video becomes much more fun to watch
@BackToBackSWE
@BackToBackSWE 2 года назад
Haha! great idea
@notexlol3125
@notexlol3125 4 года назад
I have seen tons of your videos, and I never found the code in the description. Could you please tell me where is it exactly?
@BackToBackSWE
@BackToBackSWE 4 года назад
The repository is deprecated, we only maintain backtobackswe.com now.
@flarros
@flarros 3 года назад
So I'm taking an algorithm design course and while this is great for a coding interview, I actually need the mathematical intuition to be able to derive an equation that will work for any number of floors or eggs. Does someone know a resource for helping to understand that side of things?
@BackToBackSWE
@BackToBackSWE 3 года назад
noted, I'm not sure
@kwanji.feb2
@kwanji.feb2 3 года назад
This is the most explaination of this type of dp :>
@skullblank4623
@skullblank4623 3 года назад
tysm man this helped a lot :)
@sahilk335
@sahilk335 5 лет назад
At 20:59 When we want value for drop(2,2) , then, Why do we simulate sim(2,1) & sim(2,2) . we are solving for is 2 (which is 'totalFloors') floors and 2 (which is 'totalEggs') eggs. We are doing 2 simulations: sim(2, 1) (2 eggs, start from floor 1) and sim(2, 2) (2 eggs, start from floor 2). why not just sim(2,1) ? beacuse sim(2,2) is bad choice... right ?
@BackToBackSWE
@BackToBackSWE 5 лет назад
"why not just sim(2,1)?" If we just do one of the simulations (and not all of them) we may miss a case that would've yielded a truer bound to the worst amount of eggs that would need to be dropped to ensure we find the pivotal floor. For the approach in the video (and it is not the most optimal approach), we have to run all simulations to ensure our upper limit is correct with such a guarantee.
@Kasfas
@Kasfas 9 месяцев назад
Question: Would this problem also be solved by a piecewise function of binary and linear search where you do binary search until eggnum == 1, then do linear search from the minpointer to the maxpointer? If I’m right and this is the case, the runtime complexity should be O(Height)/Θ(log(Height)), and space complexity O(1)? Also, pretty good job explaining the question in terms of DP. :)
@aaryangupta1689
@aaryangupta1689 3 года назад
where is the link for the code it not in description.
@BackToBackSWE
@BackToBackSWE 3 года назад
The repository is deprecated - we only maintain backtobackswe.com now.
@ashishkumarchoubey5592
@ashishkumarchoubey5592 2 года назад
I never am able to find code in description.
@amartyamishra6961
@amartyamishra6961 3 месяца назад
Where is the code? Am I mistaking the place where the description is supposed to be?
@architranjan9
@architranjan9 4 года назад
The n^2*k dp solution as discussed in the video is giving tle on leetcode after 80 test cases or so!
@BackToBackSWE
@BackToBackSWE 4 года назад
yes
@waxylayer8353
@waxylayer8353 4 года назад
I got my first job ( 18 lpa ) all coz of your videos.... Thanks a lot dude .. keep helping people ❤️
@BackToBackSWE
@BackToBackSWE 4 года назад
nice, best of luck internet friend
@waxylayer8353
@waxylayer8353 4 года назад
@@BackToBackSWE thank you so much 🤩🤩
@lokeshsenthilkumar4522
@lokeshsenthilkumar4522 3 года назад
@@waxylayer8353 Hey bro, Are you a Tamilian?
@waxylayer8353
@waxylayer8353 2 года назад
@@lokeshsenthilkumar4522 yes
@vakul121
@vakul121 4 года назад
thanks
@BackToBackSWE
@BackToBackSWE 4 года назад
sure
@raymondyoo5461
@raymondyoo5461 5 лет назад
When the egg doesn’t break, why do we go for [ totalfloor - simfloor ] instead of [ simfloor + 1 ] ???
@BackToBackSWE
@BackToBackSWE 5 лет назад
It expresses the # of floors above where we dropped. Think on this. Example 1: 6 5 4 3 (drop here) 2 1 0 simFloor = 3 I drop at 3. No break. I go up. Do I have 6 - (3) = 3 floors above me? Or simfloor + 1 = (3) + 1 = 4 floors above me? Example 2: 6 (drop here) 5 4 3 2 1 0 simFloor = 6 I drop at 6. No break. I go up. Do I have 6 - (6) = 0 floors above me? Or simfloor + 1 = (6) + 1 = 7 floors above me? Check the code in the description. Really internalize it.
@raymondyoo5461
@raymondyoo5461 5 лет назад
Hmm... interesting. Thank you very much for your explanation :)
@BackToBackSWE
@BackToBackSWE 5 лет назад
@@raymondyoo5461 I think I could've done better with this, oh well. Just keep thinking on it if you still don't 100% understand it.
@raymondyoo5461
@raymondyoo5461 5 лет назад
@@BackToBackSWE Yeah, I searched other videos or blogs, and I just saw 99% similar explanation to yours. I hope I can come back here later and I clearly understand this.
@BackToBackSWE
@BackToBackSWE 5 лет назад
@@raymondyoo5461 Yeah, time helps as you see more dp problems. It is a specific way of thinking. When it does click it will be interesting. What is still unclear? If I may clarify it.
@sahsubodh
@sahsubodh 4 года назад
not sure if you will see this but the link for code is broken here.
@BackToBackSWE
@BackToBackSWE 4 года назад
I see every comment and I dont have time to fix it. I restructured the repo
@ankitgoyal8556
@ankitgoyal8556 3 месяца назад
I don't where you are these days, when I was fresher I learnt from your videos. Now I have experience of 3 years and I am still learning from you. Am I in love with you ? 😜
@rollinOnCode
@rollinOnCode 3 года назад
Where is the link to the code?
@Blixy95
@Blixy95 4 года назад
Adding the recurisve function would make it perfect
@BackToBackSWE
@BackToBackSWE 4 года назад
yes
@trejojimenezabiud5271
@trejojimenezabiud5271 8 месяцев назад
where i can find the code ?
@anushayerram772
@anushayerram772 Год назад
There is no link for the code in the description !!!!!!!!
Далее
GT-R - ВСЁ! :(
57:36
Просмотров 844 тыс.
За что я НЕНАВИЖУ ЛЕТО
00:59
Просмотров 229 тыс.
1st place Egg Drop project ideas- using SCIENCE
9:49
What is a Monad? - Computerphile
21:50
Просмотров 599 тыс.
The moment we stopped understanding AI [AlexNet]
17:38
Просмотров 879 тыс.
iPhone 14 китайский сборка!
1:00
Просмотров 329 тыс.
Способы сделать фото на iPhone
0:26
Nokia 3310 top
0:20
Просмотров 4,7 млн