关于网站开发相关法律条款,商标注册查询官网网站,怎么一键删除wordpress,wordpress向小程序获取数据你将获得 K 个鸡蛋#xff0c;并可以使用一栋从 1 到 N 共有 N 层楼的建筑。
每个蛋的功能都是一样的#xff0c;如果一个蛋碎了#xff0c;你就不能再把它掉下去。
你知道存在楼层 F #xff0c;满足 0 F N 任何从高于 F 的楼层落下的鸡蛋都会碎#xff0c;…
你将获得 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
思路看我这个网址https://blog.csdn.net/hebtu666/article/details/84789853
class Solution {public int superEggDrop(int kChess,int nLevel) {int bsTimes log2N(nLevel) 1;if (kChess bsTimes) {return bsTimes;}int[] dp new int[kChess];int res 0;while (true) {res;//压缩空间记得记录次数int previous 0;for (int i 0; i dp.length; i) {int tmp dp[i];dp[i] dp[i] previous 1;previous tmp;if (dp[i] nLevel) {return res;}}}}public static int log2N(int n) {int res -1;while (n ! 0) {res;n 1;}return res;}
}