高樓扔雞蛋問題一種比較簡單的解法(C )

2021-10-20 16:30:52 字數 966 閱讀 7647

這個是leetcode刷題筆記,下面這種解法提交的時候會超時,但是單獨試了幾個用例是正確的。

題目:

你將獲得 k 個雞蛋,並可以使用一棟從 1 到 n  共有 n 層樓的建築。

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

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

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

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

示例 1:

輸入:k = 1, n = 2

輸出:2

解釋:雞蛋從 1 樓掉落。如果它碎了,我們肯定知道 f = 0 。

否則,雞蛋從 2 樓掉落。如果它碎了,我們肯定知道 f = 1 。

如果它沒碎,那麼我們肯定知道 f = 2 。

因此,在最壞的情況下我們需要移動 2 次以確定 f 是多少。

用的是暴力搜尋法。 其中的for迴圈,i指的是先從第i層樓開始拋雞蛋,那麼會出現兩種情況:

因為是要求最壞的情況下的最少次數,所以卻這個兩種情況下的max 

class solution 

int max(int a,int b)

int results[100+1][10000+1];

public:

int supereggdrop(int k, int n)

else if(n==0)

else if(results[k][n] !=0)

int minres = 10000;

for(int i =1;i<=n;i++)

results[k][n] = minres;

return minres;

}};

比較簡單的一種快速排序方法

def quicksort head,tail head1 head tail1 tail tmp arr head 儲存臨時元素 如果頭指標小於尾指標一直迴圈,直到相等找到元素的正確索引跳出迴圈 while head tail 尾部資料大於臨時元素,尾指標前移 while arr tail tmp...

做了幾個題,出的問題,以及比較簡單的解法

1.轉換16進製制,我的是常規解法,沒啥好說的,另外有 include include using namespace std int main 畢竟在記憶體中存的都是01,你換個型別人家就給你什麼,很好。2.還有個操作字元的題目,要求輸出 abcdefg babcdef cbabcde dcbab...

約瑟夫環的一種簡單解法

首先還是描述一下約瑟夫環問題吧 n個人圍成乙個圈,從第乙個人開始數數 從1開始數 每數到3 當然這個數字可以隨便定 數到3的那個人就退出,接著,他的下乙個人又從1開始數.迴圈不斷,剩下的k個人就是勝利者 當人,這個人數也可以隨便定 接下來的 是利用乙個陣列模擬環,對該陣列進行相應的操作,如果數到3,...