美文网首页
584. 丢鸡蛋II

584. 丢鸡蛋II

作者: 6默默Welsh | 来源:发表于2018-01-17 10:44 被阅读34次

描述

有一个n层的建筑。如果一个鸡蛋从第k层及以上落下,它会碎掉。如果从低于这一层的任意层落下,都不会碎。
有m个鸡蛋,用最坏的情况下实验次数最少的方法去找到k, 返回最坏情况下所需的实验次数。

样例

给出 m = 2, n = 100 返回 14
给出 m = 2, n = 36 返回 8

思路
动态规划+递归。用二元数组存储某鸡蛋某层所需的次数。迭代试扔第一个鸡蛋,在某层扔。

  1. 扔碎了即转为鸡蛋少一个,楼层少一层的子问题。
  2. 没扔碎即转化为鸡蛋没有少楼层少为上半层那么多的子问题。

代码

public class Solution {
    /**
     * @param m the number of eggs
     * @param n the umber of floors
     * @return the number of drops in the worst case
     */
    public int dropEggs2(int m, int n) {
        int[][] dp = new int[m + 1][n + 1];

        for (int i = 1; i <= m; ++i) {
            dp[i][1] = 1;
            dp[i][0] = 0;
        }
     
        for (int j = 1; j <= n; ++j)
            dp[1][j] = j;

        for (int i = 2; i <= m; ++i) {
            for (int j = 2; j <= n; ++j) {
                dp[i][j] = Integer.MAX_VALUE;
                for (int k = 1; k <= j; ++k) {
                    dp[i][j] = Math.min(dp[i][j],
                        1 + Math.max(dp[i - 1][k - 1], dp[i][j - k]));
                }
            }
        }

        return dp[m][n];
    }
}

相关文章

  • 584. 丢鸡蛋II

    描述 有一个n层的建筑。如果一个鸡蛋从第k层及以上落下,它会碎掉。如果从低于这一层的任意层落下,都不会碎。有m个鸡...

  • 2018-5-31 星期四

    早餐:小米粥 鸡蛋 午餐:餐盘 --- 韭菜鸡蛋、土豆丝、茄子 (吃了一丢丢,太难吃....) 下午:一根香蕉 ...

  • leetcode数据库类型:584.寻找用户推荐人,难度:简单

    leetcode数据库类型:584.寻找用户推荐人,难度:简单 解答:

  • 2022-04-01 sql:查找 ifnull leftjo

    584. 寻找用户推荐人[https://leetcode-cn.com/problems/find-custom...

  • 【宅家减肥】酱油蒸鸡蛋

    宅家减脂 减肥期间一天吃几个鸡蛋? 【酱油鸡蛋】 食材准备:鸡蛋6个; 调料:海鲜酱油一勺、一丢丢盐巴、一小把葱花...

  • 西红柿鸡蛋盖浇面

    前几天,在楼下的餐馆里给孩子打包了份西红柿鸡蛋面,16元,只有一丢丢西红柿汁,鸡蛋炒的稀碎,看着都没食欲。 怪不得...

  • 【LintCode】254. 丢鸡蛋

    楼有 n 层高,鸡蛋若从 k 层或以上扔,就会碎。从 k 层以下扔,就不会碎。现在给两个鸡蛋,用最少的扔的次数找到...

  • 今天做的好烂 青菜饼这次皮最薄 有鸡蛋的更好吃(韭菜鸡蛋的也好吃) 土豆饼比木耳莲藕青菜饼好吃一丢丢 之前做的还有...

  • 果果有故事268天

    10.29自己剥鸡蛋,厉害。除了鸡蛋有点丑,其他还好,鸡蛋壳上要是有鸡蛋都会被你吃掉,然后再丢,一点不浪费。

  • 减脂餐

    吃吃吃就瘦啦 鸡排,无油,切成薄片 放丢丢盐,黑胡椒腌制15分钟 面粉跟鸡蛋混合 腌制后的鸡胸放入面粉鸡蛋糊,再拿...

网友评论

      本文标题:584. 丢鸡蛋II

      本文链接:https://www.haomeiwen.com/subject/nfvyoxtx.html