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