-
Notifications
You must be signed in to change notification settings - Fork 1
/
kokoEatingbanana.java
67 lines (62 loc) · 3.32 KB
/
kokoEatingbanana.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
package striver.binarysearch;
public class kokoEatingbanana {
//LEETCODE : 875
// Koko loves to eat bananas. There are n piles of bananas, the ith pile has piles[i] bananas.
// The guards have gone and will come back in h hours.
//Koko can decide her bananas-per-hour eating speed of k. Each hour,
// she chooses some pile of bananas and eats k bananas from that pile.
// If the pile has less than k bananas, she eats all of them instead and will not eat any more bananas during this hour.
//Koko likes to eat slowly but still wants to finish eating all the bananas before the guards return.
//Return the minimum integer k such that she can eat all the bananas within h hours.
//Input: piles = [3,6,7,11], h = 8
//Output: 4
// so lets dive deeper into tht question so koko loves to eat bananas bt the guard is a mf nd he is
// not in a space so kokoo got a chance to eat bananaas bt the condition is she has only (H)hrs of time
// and on tht time constraint she have to eat all that bananas tht she loves most to eat
// and for tht lets find out max no of banana she can eat and for tht findmax func will help us..
public static int findMax(int[] piles) {
int maxi = Integer.MIN_VALUE;
int n = piles.length;
for (int i = 0; i < n; i++) {
maxi = Math.max(maxi, piles[i]);
}
return maxi;
}
// once we get tht now the time she will toook to eat tht banans is the condition bcs guard is a mf
//and for tht in this methods we calculte the time she took to eat all the bananas
//taking piles and hrs as input and traversing through a looop and getting the value of the totalhrs koko
//will take to eat tht bananaa
public static int totalTimeTaken(int[] piles, int h) {
int totalHrs = 0;
int n = piles.length;
for (int i = 0; i < n; i++) {// nd to find out the time she will took to each tht bannan dividing
//the piles with an hr
// tht will return the time koko will take to eat tht bananapill
totalHrs += Math.ceil((double) piles[i] / h);
}
return totalHrs;
}
// and after tht now its time to search out for the minimun amount of time she will take
// to eat tht bananaa and once its comes to search yess binary search