You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
"text": "\nimport java.util.Arrays;\n\nclass Solution {\n public int superEggDrop(int K, int N) {\n int[][] dp = new int[K + 1][N + 1];\n \n for (int m = 1; m <= N; ++m) {\n for (int k = 1; k <= K; ++k) {\n dp[k][m] = dp[k - 1][m - 1] + 1 + dp[k][m - 1];\n if (dp[k][m] >= N) {\n return m;\n }\n }\n }\n \n return N; // Fallback, should not reach here\n }\n}\n\n"
10551
+
},
10596
10552
{
10597
10553
"language": "js",
10598
-
"text": "\nvar superEggDrop = function (K, N) {\n // 不选择dp[K][M]的原因是dp[M][K]可以简化操作\n const dp = Array(N + 1)\n .fill(0)\n .map((_) => Array(K + 1).fill(0));\n\n let m = 0;\n while (dp[m][K] < N) {\n m++;\n for (let k = 1; k <= K; ++k) dp[m][k] = dp[m - 1][k - 1] + 1 + dp[m - 1][k];\n }\n return m;\n};\n"
10554
+
"text": "\n/**\n * @param {number} k\n * @param {number} n\n * @return {number}\n */\nvar superEggDrop = function superEggDrop(K, N) {\n const dp = Array.from({ length: K + 1 }, () => Array(N + 1).fill(0));\n \n for (let m = 1; m <= N; ++m) {\n for (let k = 1; k <= K; ++k) {\n dp[k][m] = dp[k - 1][m - 1] + 1 + dp[k][m - 1];\n if (dp[k][m] >= N) {\n return m;\n }\n }\n }\n \n return N; // Fallback, should not reach here\n}\n\n\n"
10555
+
},
10556
+
{
10557
+
"language": "cpp",
10558
+
"text": "\n#include <vector>\n#include <functional>\n\nclass Solution {\npublic:\n int superEggDrop(int K, int N) {\n std::vector<std::vector<int>> dp(K + 1, std::vector<int>(N + 1, 0));\n \n for (int m = 1; m <= N; ++m) {\n for (int k = 1; k <= K; ++k) {\n dp[k][m] = dp[k - 1][m - 1] + 1 + dp[k][m - 1];\n if (dp[k][m] >= N) {\n return m;\n }\n }\n }\n \n return N; // Fallback, should not reach here\n }\n};\n\n"
10599
10559
},
10600
10560
{
10601
10561
"language": "py",
@@ -10611,23 +10571,19 @@
10611
10571
},
10612
10572
{
10613
10573
"language": "py",
10614
-
"text": "\nclass Solution:\n def superEggDrop(self, K: int, N: int) -> int:\n for i in range(K + 1):\n for j in range(N + 1):\n if i == 1:\n dp[i][j] = j\n if j == 1 or j == 0:\n dp[i][j] == j\n dp[i][j] = j\n for k in range(1, j + 1):\n dp[i][j] = min(dp[i][j], max(dp[i - 1][k - 1] + 1, dp[i][j - k] + 1))\n return dp[K][N]\n"
10574
+
"text": "\nclass Solution:\n def superEggDrop(self, K: int, N: int) -> int:\n dp = [[i for _ in range(K+1)] for i in range(N + 1)]\nfor i in range(N + 1):\n for j in range(1, K + 1):\n dp[i][j] = i\n if j == 1:\n continue\n if i == 1 or i == 0:\n break\n for k in range(1, i + 1):\n dp[i][j] = min(dp[i][j], max(dp[k - 1][j-1] + 1, dp[i-k][j] + 1))\n return dp[N][K]\n"
10615
10575
},
10616
10576
{
10617
10577
"language": "py",
10618
-
"text": "\nclass Solution:\n def superEggDrop(self, K: int, N: int) -> int:\n dp = [[0] * (K + 1) for _ in range(N + 1)]\n\n for i in range(N + 1):\n for j in range( K + 1):\n if j == 1:\n dp[i][j] = i\n if i == 1 or i == 0:\n dp[i][j] == i\n dp[i][j] = i\n for k in range(1, i + 1):\n dp[i][j] = min(dp[i][j], max(dp[k - 1][j - 1] + 1, dp[i - k][j] + 1))\n return dp[N][K]\n dp = [[0] * (N + 1) for _ in range(K + 1)]\n"
10578
+
"text": "\nclass Solution:\n def superEggDrop(self, K: int, N: int) -> int:\n dp = [[i for i in range(N+1)] for _ in range(K + 1)]\n for i in range(1, K + 1):\n for j in range(N + 1):\n dp[i][j] = j\n if i == 1:\n break\n if j == 1 or j == 0:\n continue\n for k in range(1, j + 1):\n dp[i][j] = min(dp[i][j], max(dp[i - 1][k - 1] + 1, dp[i][j - k] + 1))\n return dp[K][N]\n"
10619
10579
},
10620
10580
{
10621
10581
"language": "py",
10622
-
"text": "\nclass Solution:\n def superEggDrop(self, K: int, N: int) -> int:\n def f(m, k):\n if k == 0 or m == 0: return 0\n return f(m - 1, k - 1) + 1 + f(m - 1, k)\n m = 0\n while f(m, K) < N:\n m += 1\n return m\n"
10582
+
"text": "\nclass Solution:\n def superEggDrop(self, K: int, N: int) -> int:\n \n @cache\n def f(m, k):\n if k == 0 or m == 0: return 0\n return f(m - 1, k - 1) + 1 + f(m - 1, k)\n l, r = 1, N\n while l <= r:\n mid = (l + r) // 2\n if f(mid, K) >= N:\n r = mid - 1\n else:\n l = mid + 1\n \n return l\n"
10623
10583
},
10624
10584
{
10625
10585
"language": "py",
10626
-
"text": "\nclass Solution:\n def superEggDrop(self, K: int, N: int) -> int:\n dp = [[0] * (K + 1) for _ in range(N + 1)]\n m = 0\n while dp[m][K] < N:\n m += 1\n for i in range(1, K + 1):\n dp[m][i] = dp[m - 1][i - 1] + 1 + dp[m - 1][i]\n return m\n"
10627
-
},
10628
-
{
10629
-
"language": "py",
10630
-
"text": "\nclass Solution:\n def superEggDrop(self, K: int, N: int) -> int:\n dp = [[0] * (K + 1) for _ in range(N + 1)]\n m = 0\n while dp[m][K] < N:\n m += 1\n for i in range(1, K + 1):\n dp[m][i] = dp[m - 1][i - 1] + 1 + dp[m - 1][i]\n return m\n"
10586
+
"text": "\nclass Solution:\n def superEggDrop(self, K: int, N: int) -> int:\n dp = [[0] * (N + 1) for _ in range(K + 1)]\n \n for m in range(1, N + 1):\n for k in range(1, K + 1):\n dp[k][m] = dp[k - 1][m - 1] + 1 + dp[k][m - 1]\n if dp[k][m] >= N:\n return m\n \n return N # Fallback, should not reach here\n"
"text": "\nclass Solution:\n def minNumberOperations(self, A: List[int]) -> int:\n d = [A[0]]\n ans = 0\n\n for i in range(1, len(A)):\n d.append(A[i] - A[i-1])\n for a in d:\n ans += max(0, a)\n return ans\n"
12818
-
},
12819
-
{
12820
-
"language": "py",
12821
-
"text": "\nclass Solution:\n def minNumberOperations(self, A: List[int]) -> int:\n ans = A[0]\n for i in range(1, len(A)):\n ans += max(0, A[i] - A[i-1])\n return ans\n"
12767
+
"text": "\nclass Solution:\n def minNumberOperations(self, nums: List[int]) -> int:\n ans = abs(nums[0])\n for i in range(1, len(nums)):\n if abs(nums[i]) > abs(nums[i - 1]): # 这种情况,说明前面不能顺便把我改了,还需要我操作 k 次\n ans += abs(nums[i]) - abs(nums[i - 1])\n return ans\n"
0 commit comments