Egg Drop With 2 Eggs and N Floors LeetCode solution in C++

1
int dp[1001][1001];
2
class Solution {
3
public:
4
int solve(int e, int f) {
5
if (f == 0 || f == 1) {
6
return f;
7
}
8
if (e == 1) {
9
return f;
10
}
11
if (dp[e][f] != -1) return dp[e][f];
12
int mn = INT_MAX;
13
int left = 1, right = f;
14
while (left <= right) {
15
int mid = left + (right - left) / 2;
16
int left_result = solve(e - 1, mid - 1);
17
int right_result = solve(e, f - mid);
18
mn = min(mn, 1 + max(left_result, right_result));
19
if (left_result < right_result)
20
left = mid + 1;
21
else
22
right = mid - 1;
23
}
24
return dp[e][f] = mn;
25
}
26
int twoEggDrop(int n) {
27
memset(dp, -1, sizeof(dp));
28
return solve(2, n);
29
}
30
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0