mirror of
https://github.com/20kaushik02/leetcode-gulag.git
synced 2025-12-06 06:24:07 +00:00
day 32: 875-koko-eating-bananas
This commit is contained in:
parent
a0dadd9563
commit
bd6d55f622
10
875-koko-eating-bananas/driver.cpp
Normal file
10
875-koko-eating-bananas/driver.cpp
Normal file
@ -0,0 +1,10 @@
|
||||
#include "soln.hpp"
|
||||
|
||||
int main()
|
||||
{
|
||||
vector<int> piles{30, 23, 11, 4, 20};
|
||||
int h = 5, answer = 30;
|
||||
Solution soln;
|
||||
cout << "Found minimum k correctly? " << soln.test(piles, h, answer) << endl;
|
||||
return 0;
|
||||
}
|
||||
44
875-koko-eating-bananas/soln.cpp
Normal file
44
875-koko-eating-bananas/soln.cpp
Normal file
@ -0,0 +1,44 @@
|
||||
#include "soln.hpp"
|
||||
|
||||
int Solution::minEatingSpeed(vector<int> &piles, int h)
|
||||
{
|
||||
if (piles.size() < 2)
|
||||
{
|
||||
// cout << double(piles[0]/double(h)) << " " << ceil(piles[0]/double(h)) << endl;
|
||||
return ceil(piles[0] / double(h));
|
||||
}
|
||||
long k_lmin = 0;
|
||||
int k_max = 1;
|
||||
int k_mid, hours_for_k_mid;
|
||||
for (int pile : piles)
|
||||
{
|
||||
k_max = max(k_max, pile);
|
||||
k_lmin += pile;
|
||||
}
|
||||
k_lmin /= h;
|
||||
int k_min = k_lmin;
|
||||
while (k_min < k_max)
|
||||
{
|
||||
k_mid = (k_min + k_max) / 2;
|
||||
hours_for_k_mid = 0;
|
||||
for (int pile : piles)
|
||||
{
|
||||
// cout << pile << " " << k_mid << endl;
|
||||
hours_for_k_mid += ceil(pile / double(k_mid));
|
||||
}
|
||||
if (hours_for_k_mid > h)
|
||||
{
|
||||
k_min = k_mid + 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
k_max = k_mid;
|
||||
}
|
||||
}
|
||||
return k_min;
|
||||
}
|
||||
|
||||
bool Solution::test(vector<int> &piles, int h, int answer)
|
||||
{
|
||||
return minEatingSpeed(piles, h) == answer;
|
||||
}
|
||||
8
875-koko-eating-bananas/soln.hpp
Normal file
8
875-koko-eating-bananas/soln.hpp
Normal file
@ -0,0 +1,8 @@
|
||||
#include <bits/stdc++.h>
|
||||
using namespace std;
|
||||
class Solution
|
||||
{
|
||||
public:
|
||||
int minEatingSpeed(vector<int> &piles, int h);
|
||||
bool test(vector<int> &piles, int h, int answer);
|
||||
};
|
||||
Loading…
x
Reference in New Issue
Block a user