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;到网络…

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;乐高品牌渐渐有了“快乐、想象、创意的未来”的寓意。 随着外…

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

笔记整理 | 方尹&#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逻辑优化、索引优化等。其中索引优化通常通过调整索…

LeetCode 295. 数据流的中位数(大小堆)

文章目录1. 题目2. 大小堆解题1. 题目 中位数是有序列表中间的数。如果列表长度是偶数&#xff0c;中位数则是中间两个数的平均值。 例如&#xff0c; [2,3,4] 的中位数是 3 [2,3] 的中位数是 (2 3) / 2 2.5设计一个支持以下两种操作的数据结构&#xff1a;void addNum(int…

论文浅尝 | 利用常识知识图谱进行多跳推理的语言生成方法

笔记整理 | 朱珈徵&#xff0c;天津大学硕士。链接&#xff1a;https://arxiv.org/pdf/2009.11692.pdf动机尽管生成式预训练语言模型在一系列文本生成任务上取得了成功&#xff0c;但在生成过程中需要对基础常识知识进行推理的情况下&#xff0c;它们仍然会受到影响。现有的方法…

成本砍砍砍!不用数据也能用 BERT 做对比学习?

文 | 小昌编 | 小戏大家好&#xff0c;我是小昌&#xff0c;今天和大家聊一聊如何从 BERT 中获取好的句子表征。大家都知道&#xff0c;BERT 的设计初衷是为了获得更好的单词表征。但是&#xff0c;利用 BERT 来表征句子的需求无论在学术界还是工业界都是非常紧迫的。因此&…

Mt-Falcon——Open-Falcon在美团点评的应用与实践

监控系统是整个业务系统中至关重要的一环&#xff0c;它就像眼睛一样&#xff0c;时刻监测机房、网络、服务器、应用等运行情况&#xff0c;并且在出现问题时能够及时做出相应处理。 美团点评刚开始使用的是Zabbix监控系统&#xff0c;几经优化&#xff0c;在当时能够达到2W机器…