寻找用于降低掉蛋问题的最少试验次数的关键楼层

    int eggDrop(int n, int k){
    int egg[n+1][k+1];
    int re;
    for(int i=1;i<=n;i++)
    {
        egg[i][1]=1;
        egg[i][0]=0;
    }
    for(int i=1;i<=k;i++)
        egg[1][i]=i;
    for(int i=2;i<=n;i++){
        for(int j=2;j<=k;j++){
            egg[i][j]=INT_MAX;
            for(int x=1;x<=j;x++){
               re = 1+ max(egg[i-1][x-1], egg[i][j-x]);
               if(egg[i][j]>re)
                 egg[i][j]=re;

        }
    }
}
return egg[n][k];
}

掉蛋问题: 鸡蛋的数量为n,且建筑物的楼层数为k。编写一个算法,以找出知道落下鸡蛋的最低落差所需的最小落下次数。

注意: 一个试验是-从特定的地板上放一个鸡蛋。

如果鸡蛋掉下来后没有破裂,将再次使用。

如果鸡蛋从某个楼层掉落时破裂,那么如果从更高的楼层掉落,鸡蛋就会破裂。

如果鸡蛋从某个地板掉落时没有破裂,那么从任何较低的地板掉落也不会破裂。

上面的dp解决方案仅返回最小墨滴数,如何修改此解决方案以打印用于达到最小墨滴数的临界楼层?

评论