BS-12. Koko Eating Bananas

Problem Link: bit.ly/3CmCKVI
Notes/C++/Java/Python codes: takeuforward.org/binary-searc...
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

Пікірлер: 232

  • @--Blood--Prince--
    @--Blood--Prince-- Жыл бұрын

    I see Koko is on a high carb diet😀😅

  • @prernagupta7729

    @prernagupta7729

    9 ай бұрын

    😂

  • @SreeCharan-dx7oc

    @SreeCharan-dx7oc

    3 ай бұрын

    🤣🤣

  • @dumpster-jackson

    @dumpster-jackson

    24 күн бұрын

    Gay

  • @omkarshendge5438

    @omkarshendge5438

    16 күн бұрын

    lmao but tbh koko is a monkey i think thats why he is eating bananas!

  • @kumarvansh007

    @kumarvansh007

    5 күн бұрын

    @@dumpster-jackson wtf

  • @vm1662
    @vm166210 ай бұрын

    Great tip! Whenever there is a possible range of answers then we can apply binary search.. Thanks a lot Striver!

  • @pradyumnmulegaon385
    @pradyumnmulegaon3857 ай бұрын

    for those who are solving in leetcode the TotalH should be long long and also the CalculatetotalHours should also be long long type otherwise it will throw an error ..... hope it is helpful

  • @socify4410

    @socify4410

    7 ай бұрын

    it was throwing run time error earlier. i thought i must be missing some edge case . after this change it got submitted. thanks to you buddy

  • @tanishagarwal5992

    @tanishagarwal5992

    7 ай бұрын

    Why to calculate total hours just check if it any instance the req time crosses h... Return false

  • @user-sm7zo5zd9t

    @user-sm7zo5zd9t

    4 ай бұрын

    When I was submitting my code, I encountered the same problem, Thanks buddy.

  • @tusharkhatri2921

    @tusharkhatri2921

    4 ай бұрын

    Bro on LeetCode not working after 121 test cases.

  • @ranjeet_sohanpal

    @ranjeet_sohanpal

    3 ай бұрын

    @@tusharkhatri2921 you can make the condition in the calculation of hour .When the time taken exceeds h, you immediately return that val and prevent the overflow

  • @mathguy198
    @mathguy198 Жыл бұрын

    Thanks Striver, always struggled to understand the reason behind the answer being always the low value, now it's clear as crystal, all thanks to you❤❤

  • @visheshagrawal8676
    @visheshagrawal8676 Жыл бұрын

    I have earlier solved the question but intuition of yours is truly amazing... Great Content 🔥🔥

  • @user-eh9wd8hp4f
    @user-eh9wd8hp4f Жыл бұрын

    never thought we could even solve this by binary search mind-blowing

  • @CrazyHunk14
    @CrazyHunk145 ай бұрын

    thanks to your intuition I could do this question on my own using the same approach that you explained in this video without any help! kudos

  • @sauravchandra10
    @sauravchandra10 Жыл бұрын

    I remember doing this question earlier but the way you taught I am confident I can now easily solve problems like these in interviews with a clear and intuitive explanation. Understood, thanks!

  • @keshav9541

    @keshav9541

    2 ай бұрын

    same

  • @SuvradipDasPhotographyOfficial
    @SuvradipDasPhotographyOfficial Жыл бұрын

    The wait is finally over.... Thanks a ton striver❤

  • @abhaysinghrathore3192
    @abhaysinghrathore31929 ай бұрын

    give this man the best teacher award in the world

  • @30sunique78

    @30sunique78

    4 ай бұрын

    In DSA sure is this best For development check chai aur code once

  • @ritiksoni5255
    @ritiksoni52552 ай бұрын

    Thankyou you so much finally able to understand the approach and logics for solving DSA!!

  • @Dipanshutripathi2407
    @Dipanshutripathi240710 ай бұрын

    I have no doubts after watching ur videos.

  • @cinime
    @cinime Жыл бұрын

    Understood! Wonderful explanation as always, thank you very very much for your effort!!

  • @thenikhildaiya.
    @thenikhildaiya. Жыл бұрын

    I just saw the question explanation and did the brute force and binary search approach all by myself just because of your previous videos explanation. Thank you so much for this wonderful and guided course.

  • @kumarshivam3661

    @kumarshivam3661

    Жыл бұрын

    Bro please post the solution of code

  • @thenikhildaiya.

    @thenikhildaiya.

    Жыл бұрын

    @@kumarshivam3661 ** Brute Force : class Solution { public: int minEatingSpeed(vector& piles, int h) { int maxHours = -1 , k = 0 ; for(int i = 0 ; i if(piles[i] > maxHours) maxHours = piles[i] ; for(int i = 1 ; i

  • @nostalgiccringeallhailchel3881

    @nostalgiccringeallhailchel3881

    Жыл бұрын

    how far have you progressed in 3 weeks bro pls update

  • @thenikhildaiya.

    @thenikhildaiya.

    Жыл бұрын

    @@nostalgiccringeallhailchel3881 I did aggressive cows at last. Not good progress at all because of college exams🥲 Just revising old linked list questions I did in past.

  • @nostalgiccringeallhailchel3881

    @nostalgiccringeallhailchel3881

    Жыл бұрын

    @@thenikhildaiya. Which topic is aggressive cows in?

  • @akashdutta1620
    @akashdutta16207 ай бұрын

    this was asked in an interview I came up with this solution without solving this before.. :)

  • @user-ti3bd8mp1w
    @user-ti3bd8mp1w Жыл бұрын

    understood Thank you striver for such an amazing explanation..

  • @knowthrvdo
    @knowthrvdo5 ай бұрын

    logic is same as finding first occurance THANK YOU

  • @varun1017
    @varun10175 ай бұрын

    use long long to calculateTotalHours instead of int to avoid overflow

  • @joeljacob4685
    @joeljacob46859 ай бұрын

    Thanks so much!! I was able to solve it without watching the video !!

  • @Amanali-rl9hw
    @Amanali-rl9hw Жыл бұрын

    finally found when to return the low and when to return the value high

  • @Jus-chill
    @Jus-chill Жыл бұрын

    Understood Please do upload videos consistently 😊

  • @hareshnayak7302
    @hareshnayak73023 ай бұрын

    Understood, Thanks striver for this amazing video.

  • @RaviRavi-kt9gt
    @RaviRavi-kt9gt Жыл бұрын

    You are just incredible ❤️🎉🎉

  • @manavsingh5919
    @manavsingh591910 ай бұрын

    Thank you striver....Understood everything🙂...keep up the good work

  • @padmavatishah9922

    @padmavatishah9922

    4 ай бұрын

    fr?

  • @shashwatkumar6965
    @shashwatkumar69655 ай бұрын

    Great video! Just wanted to add one thing, in the question's Constraints it's given that n

  • @sukhii0220

    @sukhii0220

    Ай бұрын

    just include the overflow condition in finding the hrs in the loop only if totalH >H break;

  • @Surya1prakash
    @Surya1prakash Жыл бұрын

    Really amazing explanation 👏

  • @user-ny6tz2rb1r
    @user-ny6tz2rb1r8 ай бұрын

    Could you also please explain.Find K close elements with binary search.I've seen in some of the binary search approaches.Few of the solutions are with right=mid or left=mid.

  • @AyushSharma-sd1ny
    @AyushSharma-sd1ny Жыл бұрын

    Great explanation Striver

  • @tanishkarawat5266
    @tanishkarawat5266 Жыл бұрын

    One doubt: what if h = 5 and piles = [30,11,23,4,20]here if we take k greater than 30 then also we'll get the answer. Then how can we apply that brute force where we are taking range of k to be [1, greatest_element] in that array?

  • @AnmolGupta-oj4lm
    @AnmolGupta-oj4lm11 ай бұрын

    Understood Very Well!

  • @hitmanop4078
    @hitmanop4078Ай бұрын

    Someone please give a advice like how can u build a logic, how to revice sometimes I just go all blank even in some easy question what should I do ??.

  • @aniketgupta8064
    @aniketgupta8064 Жыл бұрын

    hey striver, I feel that there is some problem with the leetcode question. for the testcase [805306368, 805306368, 805306368] and h = 1000000000, the expected answer is k=3 when we use an ans variable to store the desired value of mid, the code gives output = 1 which is incorrect, however, when we simply return the low, the testcase passes. I am not able to understand what is happening here. If this is a case of an overflow, I have already substitued long long. Pls help.

  • @thegame587

    @thegame587

    Жыл бұрын

    bool check(vector& piles,int h,int k){ long long ans=0; for(int i=0;ih)return false; } //cout

  • @aniketgupta8064

    @aniketgupta8064

    Жыл бұрын

    @@thegame587 Thanks a lot buddy for replying, it's working now. I had figured the overflow problem :)

  • @jayant-baid

    @jayant-baid

    Жыл бұрын

    @@aniketgupta8064 you can also make the func dataype, totalH datatype to long, this can also works

  • @aniketgupta8064

    @aniketgupta8064

    Жыл бұрын

    @@jayant-baid thanks 👍

  • @MYMIND252

    @MYMIND252

    9 ай бұрын

    @@jayant-baid thank you bro i stuck in this problem for more than hour and you save me from it 😊😊

  • @happylearning6476
    @happylearning64767 ай бұрын

    Should we not consider the + O(n) time to find the max element in the time complexity? Though i does not add to the over all complexity since we take the high value, still asking

  • @abhaythakur2597
    @abhaythakur2597 Жыл бұрын

    very helpful explaination

  • @pentapreethika4901
    @pentapreethika49016 ай бұрын

    can we do this by finding sum of elements in array and getting the ceil value by dividing it with number of hours which takes o(N) time complexity which is better than binary search.

  • @visheshagrawal8676
    @visheshagrawal8676 Жыл бұрын

    If anyone was getting runtime error of integer overflow do change the datatype of totalhours to double or long long

  • @chethanprabhu4475
    @chethanprabhu44758 күн бұрын

    Should we not add the O(n) to time complexity to find the max element in the array

  • @kiranmoura2974
    @kiranmoura2974 Жыл бұрын

    9:54 at this while calculating time complexity of linear approach func will run for n times .but inside it ceil function will be used jiski time complexity log n hoti h so vo consider nahi krenge?

  • @ziggywiggys
    @ziggywiggysАй бұрын

    Why does it not work if I take the minimum eating speed as the minimum of the array ?

  • @ayushgoel01
    @ayushgoel0111 ай бұрын

    🔴Leetcode Solution:- class Solution { private: int maxi(vector arr){ int ans = INT_MIN; for(int i=0; i

  • @ShivamMaurya-fq6ws
    @ShivamMaurya-fq6ws9 ай бұрын

    @striver thanks for explanation

  • @Donquixote-Rosinante
    @Donquixote-Rosinante7 ай бұрын

    why this solution still falls in binary search. where we create extra memory for lowest pile 1 to highest pile 11 to get maximum pile per hour?

  • @impalash_ag
    @impalash_ag4 күн бұрын

    Hi Raj, Both the BF and Optimal solutions will have an additional TC of O(n) to find the maximum element from the array.

  • @sateeshkumar1634
    @sateeshkumar16345 ай бұрын

    Hey striver, i am getting 1 test case wrong in this question, don't know why i still tried with your own code , but it is not working, nearly 3 problems have been in this way, any one please respond....

  • @akshaykeswani3601
    @akshaykeswani3601 Жыл бұрын

    Really Amazing👏👏👏

  • @ayushjaiswal7298
    @ayushjaiswal7298 Жыл бұрын

    Best explanation 🔥

  • @yashendrabadal4776
    @yashendrabadal4776Ай бұрын

    Koko for real is gonna shit the whole next day ! AWESOME VID STRIVER

  • @AdityaYadav-qf9qc
    @AdityaYadav-qf9qc Жыл бұрын

    Best explaination😍

  • @NazeerBashaShaik
    @NazeerBashaShaik3 ай бұрын

    Understood, thank you.

  • @arunm619
    @arunm61921 күн бұрын

    ceil can be replaced with x / a + ( (x % a) != 0 ? 1 : 0)

  • @durgaprasad-gn4dk
    @durgaprasad-gn4dk10 ай бұрын

    how can we come to know that the given question is bs on answers.

  • @dayashankarlakhotia4943
    @dayashankarlakhotia4943 Жыл бұрын

    Good explanation understood

  • @engineerssolutionpoint95
    @engineerssolutionpoint95 Жыл бұрын

    Nice explanation ❤

  • @aaranyaksantra9933
    @aaranyaksantra993329 күн бұрын

    nice explaination

  • @Yahsaswi
    @Yahsaswi Жыл бұрын

    was waiting for this

  • @pritivarse2129
    @pritivarse2129 Жыл бұрын

    Sir plz make videos on linked list and string part from A to Z dsa sheet

  • @user-cb8ei9xp2b
    @user-cb8ei9xp2b10 ай бұрын

    while finding maximum element in an unsorted array it takes O(n) time so ultimately the time complexity of this question is O(n).

  • @prthmsh2930

    @prthmsh2930

    6 ай бұрын

    O(n*log(max) >>> O(n) :)

  • @darven7511
    @darven75116 ай бұрын

    why do you return low, you didn't explained that part

  • @user-eb4ox5zv5m
    @user-eb4ox5zv5mАй бұрын

    To reduce runtime one can use instead of ceil ans += (piles[i]+k-1)/k;

  • @sanjaysubramani4041
    @sanjaysubramani404120 күн бұрын

    Finding max will add O(n) to the time complexity.won't it?

  • @RHuL706
    @RHuL706 Жыл бұрын

    Hi striver, i am experience developer approx 5 years, my query is how to get calls from recruiters

  • @harshitjaiswal9439
    @harshitjaiswal943911 ай бұрын

    Understood!

  • @nehathakur40
    @nehathakur40 Жыл бұрын

    how to tackle case of overflow in total hours calculated even if we use long long to calculate for total hours required it is giving wa?

  • @abhishek_dagar

    @abhishek_dagar

    11 ай бұрын

    use long long toatl hours instead of int

  • @neelnsoni1313
    @neelnsoni131311 ай бұрын

    Thank You

  • @vatsalyasharma5585
    @vatsalyasharma5585 Жыл бұрын

    By what time, will the whole A2Z course will be completed?

  • @ravisingla9032
    @ravisingla9032 Жыл бұрын

    Was Waiting for the same

  • @aritramallik8173
    @aritramallik8173 Жыл бұрын

    Dada tumi best❤❤❤

  • @srushtibhagchandani7255
    @srushtibhagchandani725525 күн бұрын

    Understood!!

  • @vrandakansal5940
    @vrandakansal5940 Жыл бұрын

    Kb tk playlist complete hogi?

  • @YourCodeVerse
    @YourCodeVerse7 ай бұрын

    Understood✅🔥🔥

  • @senseiAree
    @senseiAree9 ай бұрын

    Understood ❤

  • @culeforever5408
    @culeforever54088 ай бұрын

    understood 😇

  • @Manishgupta200
    @Manishgupta200 Жыл бұрын

    Rather than using ceil we can use "sum = sum + (v[i] - 1)/ mid + 1;" It's more optimal

  • @shikharjoshi2998

    @shikharjoshi2998

    8 ай бұрын

    what's the logic behind the (v[i]-1) ??

  • @HemanthD-bf4he

    @HemanthD-bf4he

    4 ай бұрын

    Can you explain the logic?

  • @tarunprajapati7642
    @tarunprajapati7642 Жыл бұрын

    how to quickly understand that low is pointing to answer or high?

  • @abhishek_dagar

    @abhishek_dagar

    11 ай бұрын

    dry run by taking 1 example

  • @user-tk2vg5jt3l
    @user-tk2vg5jt3l5 ай бұрын

    Thank you bhaiya

  • @rohankadam7376
    @rohankadam7376 Жыл бұрын

    Can anyone explain why we have use double while using ceil function?

  • @abhishek_dagar

    @abhishek_dagar

    11 ай бұрын

    #include using namespace std; int main() { int ans = ceil(4/(double)3); cout

  • @Anony.musk01
    @Anony.musk01 Жыл бұрын

    understoood!!!

  • @noomanraza7884
    @noomanraza788410 ай бұрын

    why low started from 1

  • @lakshyabhati2262
    @lakshyabhati22625 ай бұрын

    but if the array is sorted then we don't need to find max of array .. its just the last element of the array .. i guess

  • @ankithac5520
    @ankithac5520 Жыл бұрын

    Understood

  • @per.seus._
    @per.seus._11 ай бұрын

    understood

  • @aniketbhura6131
    @aniketbhura61319 ай бұрын

    Giving wrong ans in this test case can anyone help

  • @srinathv1412
    @srinathv14125 ай бұрын

    Understood!!!!!

  • @rushidesai2836
    @rushidesai2836Ай бұрын

    public int findHours(int[] arr, int bananaCount) { int totalHrs = 0; for (int i = 0; i totalHrs += Math.ceil((double) arr[i] / bananaCount); } return totalHrs; } Cast to double, because ceil here needs floating-point number.

  • @amaankhan9845
    @amaankhan9845 Жыл бұрын

    Following this series. Really helpfull 💪💪

  • @user-nk1mb5fy7j
    @user-nk1mb5fy7j Жыл бұрын

    UNDERSTOOD

  • @harshilpatel3205
    @harshilpatel32055 ай бұрын

    Understood sir 🫡🤍

  • @deeptidip9864
    @deeptidip9864 Жыл бұрын

    Understood:)

  • @pallabghosh3840
    @pallabghosh38402 ай бұрын

    great

  • @shashankvashishtha4454
    @shashankvashishtha4454Ай бұрын

    understand

  • @abhishekbindra9043
    @abhishekbindra9043Ай бұрын

    sir even after submitting the exactly same code as yours...its getting wrong on 10th test case

  • @abhishekshinde5375

    @abhishekshinde5375

    8 күн бұрын

    add this condition to prevent overflow while calculating totalHours required to eat for the current rate if(timeReq > h){ break; } or use long long datatype every where

  • @kanikadhawan1745
    @kanikadhawan17454 ай бұрын

    Why mid can't be our ans , why low

  • @pihus3498
    @pihus3498 Жыл бұрын

    understood :)

  • @Thescienceworld652
    @Thescienceworld65211 ай бұрын

    i was doing this wrong for three hours and what i was doing wrong was only not applying double🙂

  • @user-xb1st2pm6i
    @user-xb1st2pm6i Жыл бұрын

    What to do if the totalH value exceeds int limits ?

  • @vipinshukla5546

    @vipinshukla5546

    Жыл бұрын

    use long long instead of using int

  • @lucario404

    @lucario404

    Жыл бұрын

    Actually I was looking for this.....when will the totalH value exceed int limit, can you explain me?

  • @111rhishishranjan2

    @111rhishishranjan2

    Жыл бұрын

    @@lucario404 #include #include #include class Solution { public: int minEatingSpeed(vector& piles, int h) { int s = 1; sort(piles.begin(), piles.end()); int ans = 0; int n = piles.size() - 1; int e = piles[n]; while (s

  • @23cash86
    @23cash86 Жыл бұрын

    Thanks++

  • @akashgite905
    @akashgite9055 күн бұрын

    koko needs to stop eating those bananas

  • @VishalGupta-xw2rp
    @VishalGupta-xw2rp9 ай бұрын

    16:50 Low opposite polarity

  • @surajs5093
    @surajs509311 ай бұрын

    spent whole day in this problem still could not do it

  • @abdussalam-4836
    @abdussalam-48365 күн бұрын

    why i feel like i am watching these videos again