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; }
};

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/478332.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

正确的LeetCode刷题姿势!

名师 带你刷爆LeetCode算法知识 讲解训练免费0元报名参加在讲到 AI 算法工程师时&#xff0c;大部分同学关注点都在高大上的模型&#xff0c;一线优秀的项目。但大家往往忽略了一点&#xff0c;人工智能的模型、项目最终还是要靠程序和算法实现。算法能力是每一个程序员的基本功…

论文浅尝 | DI刊发的那些有关Knowledge Graph的论文

本文转载自公众号&#xff1a;数据智能英文刊知识图谱被称为人工智能的基石&#xff0c;它的前身是语义网&#xff0c;由谷歌在2012年率先提出&#xff0c;用于改善自身的搜索业务。Data Intelligence执行主编、东南大学计算机科学与技术学院漆桂林教授这样定义知识图谱&#x…

缓存那些事

本文已发表于《程序员》杂志2017年第3期&#xff0c;下面的版本又经过进一步的修订。 一般而言&#xff0c;现在互联网应用&#xff08;网站或App&#xff09;的整体流程&#xff0c;可以概括如图1所示&#xff0c;用户请求从界面&#xff08;浏览器或App界面&#xff09;到网络…

浅析消息队列 RabbitMQ

浅析消息队列 RabbitMQhttps://www.pianshen.com/article/4275953257/

LeetCode 42. 接雨水(双指针、单调栈)

文章目录1. 题目2. 解题2.1 正反扫描法2.2 双指针2.3 单调栈1. 题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图&#xff0c;在这种情况下&am…

论文浅尝 - IJCAI | Knowledge is NOT always you need: 外部知识注入预训练模型的利与弊...

转载公众号 | 浙大KG论文题目&#xff1a;Drop Redundant, Shrink Irrelevant: Selective Knowledge Injection for Language Model Pretraining本文作者&#xff1a;张宁豫&#xff08;浙江大学&#xff09;、邓淑敏&#xff08;浙江大学&#xff09;、张亦弛&#xff08;阿里…

圆形的CNN卷积核?华中大清华康奈尔提出圆形卷积,进一步提升卷积结构性能!...

文 | 小马编 | 极市平台写在前面目前正常卷积的感受野大多都是一个矩形的&#xff0c;因为矩形更有利于储存和计算数据的方便。但是&#xff0c;人类视觉系统的感受野更像是一个圆形的。因此&#xff0c;作者就提出&#xff0c;能不能将CNN卷积核的感受野也变成圆形呢&#xff…

Android自定义Lint实践

Android Lint是Google提供给Android开发者的静态代码检查工具。使用Lint对Android工程代码进行扫描和检查&#xff0c;可以发现代码潜在的问题&#xff0c;提醒程序员及早修正。 为保证代码质量&#xff0c;美团在开发流程中加入了代码检查&#xff0c;如果代码检测到问题&…

关于PaddleNLP如何加载训练好的模型进行NER

关于PaddleNLP如何加载训练好的模型进行NER 关于PaddleNLP如何加载训练好的模型进行NER 当时在如何加载已经训练好的模型的问题上花了很长时间&#xff0c;后来也是受另一篇文章启发&#xff0c;问题才得以解决&#xff0c;此文章写的很详细&#xff0c;所以不再详细介绍&#…

论文浅尝 | 利用机器翻译和多任务学习进行复杂的知识图谱问答

笔记整理 | 谭亦鸣&#xff0c;东南大学博士生。来源&#xff1a;EACL‘21链接&#xff1a;https://www.aclweb.org/anthology/2021.eacl-main.300.pdf概述知识图谱问答过程一般包括实体链接&#xff0c;多跳推理等步骤&#xff0c;传统方法将各个步骤作为模块单独处理&#xf…

LeetCode 134. 加油站(贪心)

文章目录1. 题目2. 解题1. 题目 在一条环路上有 N 个加油站&#xff0c;其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车&#xff0c;从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发&#xff0c;开始时油箱为空。 …

诺奖级成果开源!为什么说AlphaFold2足以改变全人类?

文 | 炼丹学徒编 | 小轶前天&#xff0c;AlphaFold2开源&#xff0c;相信大家被大大小小的公众号刷屏了。谷歌Deepmind团队此前使用基于Transformer的模型&#xff0c;在CASP14比赛上&#xff0c;刷新蛋白质三维结构预测的新高度&#xff0c;而详细论文&#xff0c;代码&#x…

美团外卖前端可视化界面组装平台 —— 乐高

乐高&#xff0c;是美团点评一个快速搭建后台系统页面的平台。名称来源于大家熟悉的丹麦知名玩具品牌&#xff0c;他们的玩具都是通过组合易拆卸、装配的零件&#xff0c;形成最终的作品。经过长期的发展&#xff0c;乐高品牌渐渐有了“快乐、想象、创意的未来”的寓意。 随着外…

[Paddle2.0学习之第四步](下)词向量之CBOW

[Paddle2.0学习之第四步]&#xff08;下&#xff09;词向量之CBOW&#xff1a;https://blog.csdn.net/qq_41976613/article/details/118977184

论文浅尝 | 主题驱动的分子图表示对比学习

笔记整理 | 方尹&#xff0c;浙江大学在读博士&#xff0c;研究方向&#xff1a;图表示学习。论文地址&#xff1a;https://arxiv.org/abs/2012.12533动机与贡献现有的对比学习框架中可能存在以下几个弊端&#xff1a;1.把节点看成一种视图&#xff0c;在节点和图之间进行对比学…

LeetCode 931. 下降路径最小和(DP)

文章目录1. 题目2. 动态规划解题1. 题目 给定一个方形整数数组 A&#xff0c;我们想要得到通过 A 的下降路径的最小和。 下降路径可以从第一行中的任何元素开始&#xff0c;并从每一行中选择一个元素。在下一行选择的元素和当前行所选元素最多相隔一列。 示例&#xff1a; 输…

到2021年,目前深度学习领域有哪些除了调模型以外的硬核研究工作和进展?

文 | 刘斯坦&#xff0c;电光幻影炼金术源 | 极市平台作为一个未入门的研究生小白&#xff0c;一方面为深度学习的实际效果和应用价值而感到兴奋&#xff0c;另一方面也会担忧自己的个人能力的发展。个人目前浅薄的看法是&#xff0c;调模型的强应用向的研究工作&#xff0c;由…

美团点评SQL优化工具SQLAdvisor开源

在数据库运维过程中&#xff0c;优化 SQL 是 DBA 团队的日常任务。例行 SQL 优化&#xff0c;不仅可以提升程序性能&#xff0c;还能够降低线上故障的概率。 目前常用的 SQL 优化方式包括但不限于&#xff1a;业务层优化、SQL逻辑优化、索引优化等。其中索引优化通常通过调整索…

使用flask调用接口去加载模型和数据集,避免每次运行都会重复加载数据集或模型,节约大量等待时间

配置python程序debug/run&#xff0c;避免每次运行都会重复加载数据集或模型&#xff0c;节约大量等待时间 使用轻量级的后端框架flask运行要加载的模型&#xff0c;作为后端&#xff0c;保持在后端运行 调用程序时直接使用url访问即可 需要用到的依赖包&#xff1a; pip inst…