日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode 887. 鸡蛋掉落(DP,难、不懂)

發布時間:2024/7/5 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode 887. 鸡蛋掉落(DP,难、不懂) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 題目

你將獲得 K 個雞蛋,并可以使用一棟從 1 到 N 共有 N 層樓的建筑。

每個蛋的功能都是一樣的,如果一個蛋碎了,你就不能再把它掉下去。

你知道存在樓層 F ,滿足 0 <= F <= N 任何從高于 F 的樓層落下的雞蛋都會碎,從 F 樓層或比它低的樓層落下的雞蛋都不會破。

每次移動,你可以取一個雞蛋(如果你有完整的雞蛋)并把它從任一樓層 X 扔下(滿足 1 <= X <= N)。

你的目標是確切地知道 F 的值是多少。

無論 F 的初始值如何,你確定 F 的值的最小移動次數是多少?

示例 1: 輸入:K = 1, N = 2 輸出:2 解釋: 雞蛋從 1 樓掉落。如果它碎了,我們肯定知道 F = 0 。 否則,雞蛋從 2 樓掉落。如果它碎了,我們肯定知道 F = 1 。 如果它沒碎,那么我們肯定知道 F = 2 。 因此,在最壞的情況下我們需要移動 2 次以確定 F 是多少。示例 2: 輸入:K = 2, N = 6 輸出:3示例 3: 輸入:K = 3, N = 14 輸出:4提示:1 <= K <= 100 1 <= N <= 10000

來源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/problems/super-egg-drop
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。

2. 好難,看的別人的

李永樂視頻講解

復工復產找工作?先來看看這道面試題:雙蛋問題


很難的的題目,看的別人的思路:求K個雞蛋在moves步內可以測出多少層

  • 設 f(k,m)表示K個雞蛋在m步內可以測出的樓層數量
  • 只要找到最小的m使得f(k,m) >= N就得到了解。

狀態轉移方程:
一共有K個雞蛋,可以扔m次。在第X層,扔下雞蛋,此時有兩種情況:

  • 雞蛋碎了,雞蛋少了一個,行動次數減少一次;測出N - X + f(k-1,m-1)層,X和它上面的N-X層已經通過這次扔雞蛋確定大于F

  • 雞蛋沒碎,雞蛋不減,行動次數減少一次;剩余 X + f(k,m-1),X層及其以下已經通過這次扔雞蛋確定不會大于F

也就是說,每一次扔雞蛋,不僅僅確定了下一次扔雞蛋的樓層的方向,也確定了另一半樓層與F的大小關系,所以在下面的關鍵代碼中,使用的不再是max,而是加法(這里是重點)。這里的相加,不是雞蛋碎了和沒碎兩種情況的相加,而是“本次扔之后可能測出來的層數 + 本次扔之前已經測出來的層數”。

但是狀態轉移方程并不是 f(k,m)= max(f(k-1, m-1), f(k, m-1)) +1

  • 而是f(k,m) = f(k-1,m-1) + f(k, m-1) + 1,+1即測試的X層本身。

邊際條件:
只有一個雞蛋K=1時,能移動多少次就能測多少樓。
只能移動一次m=1時,不管多少雞蛋都只能測一層樓。

f(0,m)=0 //沒有雞蛋無法測試 f(K,0)=0 //沒有步數無法測試 f(1,m)=m //只有一個雞蛋可以測試m層 f(K,m)=f(K,m-1)+f(K-1,m-1)+1 //向上尋找的層數+向下尋找的層數+本層 class Solution { public:int superEggDrop(int K, int N) {vector<vector<int>> dp(K+1, vector<int>(N+1, 0));int m, k;for(m = 1; m <= N; m++) {for(k = 1; k <= K; k++) {dp[k][m] = dp[k][m-1] + dp[k-1][m-1] + 1;if(dp[k][m] >= N)return m;}}return N; } };

看了快一天了,還是不太明白。。。

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的LeetCode 887. 鸡蛋掉落(DP,难、不懂)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。