
热门面试题
文章平均质量分 82
面试相关题目
消失男孩
这个作者很懒,什么都没留下…
展开
-
[华为面试题]删除字符串中相邻的相同字符
给定一个字符串,从左往右扫描,如存在两个或两个以上的相同字符靠在一起,则消除这些字符。对每次消除后剩下的字符,继续应用上述规则,直到不能再消除为止。示例:输入:abccbd 返回:ad 消除:cc、bb输入:snggnngp 返回:sgp 消除:gg 、nnn#include<iostream>#include<string>#include<stack>using namespace std;int main(){ string s = "sn原创 2020-10-15 00:30:20 · 2114 阅读 · 0 评论 -
[C++]产生固定范围的随机数
给定生成1到5的随机数rand5(),如何得到生成1到7的随机数rand7()?思路:由大的生成小的容易,比如由Rand7()生成Rand5(),所以我们先构造一个大于7的随机数生成函数。记住下面这个式子:RandN= N( RandN()-1 ) + RandN() ;// 生成1到N^2之间的随机数可以看作是在数轴上撒豆子。N是跨度/步长,是RandN()生成的数的范围长度,RandN()-1的目的是生成0到N-1的数,是跳数。后面+RandN()的目的是填满中间的空隙比如Rand25=原创 2020-09-17 16:24:49 · 626 阅读 · 0 评论 -
[LeetCode][C++]验证二叉搜索树
1、98. 验证二叉搜索树给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入:2/ 1 3输出: true示例 2:输入:5/ 1 4/ 3 6输出: false解释:输入为: [5,1,4,null,null,3,6]。根节点的值为 5 ,但是其右子节点值为 4 。代码:方法一:递归b原创 2020-09-16 21:12:53 · 218 阅读 · 0 评论 -
[LeetCode][C++]跳跃游戏
1、55. 跳跃游戏给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例 1:输入: [2,3,1,1,4]输出: true解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。示例 2:输入: [3,2,1,0,4]输出: false解释: 无论怎样,你总会到达索引为 3 的位置。但该位置的最大跳跃长度是 0 , 所以你永远不可能到达最后一个位置。原创 2020-09-15 23:59:04 · 244 阅读 · 0 评论 -
[LeetCode][C++]01矩阵/矩阵乘法
542. 01 矩阵给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离。两个相邻元素间的距离为 1 。示例 1:输入:0 0 00 1 00 0 0输出:0 0 00 1 00 0 0示例 2:输入:0 0 00 1 01 1 1输出:0 0 00 1 01 2 1注意:给定矩阵的元素个数不超过 10000。给定矩阵中至少有一个元素是 0。矩阵中的元素只在四个方向上相邻: 上、下、左、右。代码:class Solution {priv原创 2020-09-14 23:44:12 · 993 阅读 · 0 评论 -
[C/C++]滑动窗口专题/最小覆盖子串/字符串排列/找到字符串中所有字母异位词/无重复字符的最长子串/串联所有单词的子串
1、框架2、LeetCode 76:最小覆盖子串3、LeetCode 567:字符串排列4、LeetCode 438:找到字符串中所有字母异位词5、LeetCode 3:无重复字符的最长子串原创 2020-08-30 22:10:31 · 297 阅读 · 0 评论 -
[拼多多面试]找出数组中重复的数/缺失的第一个正数
找出重复的数给定一个包含n个数的数组,其数字在1到n之间(包括1和n),可知至少存在1个重复的数,且每个重复的数只重复1次,找出重复的数。要求,时间复杂度O(n),空间复杂度O(1)。思路:将数组进行排序,即nums[i]=i,由于这里的数范围是1-n,所以对应存储为 nums[i]=i+1,例如nums[0]=1,nums[1]=2…最后对数组进行遍历,找出nums[i] != i+1的nums[i]。需要在排序完之后遍历,不能在排序的时候遍历,容易把一个数多次添加到结果集中。代码原创 2020-09-13 11:41:55 · 238 阅读 · 0 评论 -
[LeetCode][C++]二叉树左右视图
1、199. 二叉树的右视图给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。示例:输入: [1,2,3,null,5,null,4]输出: [1, 3, 4]解释:class Solution {public: vector<int> res; unordered_set<int> visited; void preOrder(TreeNode* root, int depth) {原创 2020-09-10 22:53:16 · 224 阅读 · 0 评论 -
[LeetCode][C++]全排列1/2
46. 全排列给定一个 没有重复 数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]代码:class Solution {public: int sz; vector<int> mark; vector<vector<int>> res; void backtrace(vector<原创 2020-09-06 23:14:57 · 208 阅读 · 0 评论 -
[LeetCode][C++]组合总和 1/2/3
39. 组合总和给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。示例 1:输入:candidates = [2,3,6,7], target = 7,所求解集为:[[7],[2,2,3]]示例 2:输入:candidates = [2,3,5], targe原创 2020-09-06 23:07:36 · 217 阅读 · 0 评论 -
[LeetCode][C++]622. 设计循环队列
622. 设计循环队列设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。你的实现应该支持如下操作:MyCircularQueue(k): 构造器,设置队列长度为 k 。Front: 从队首获取元素。如果原创 2020-09-06 18:29:53 · 127 阅读 · 0 评论 -
[LeetCode][C++]面试题 17.07. 婴儿名字/并查集
面试题 17.07. 婴儿名字每年,政府都会公布一万个最常见的婴儿名字和它们出现的频率,也就是同名婴儿的数量。有些名字有多种拼法,例如,John 和 Jon 本质上是相同的名字,但被当成了两个名字公布出来。给定两个列表,一个是名字及对应的频率,另一个是本质相同的名字对。设计一个算法打印出每个真实名字的实际频率。注意,如果 John 和 Jon 是相同的,并且 Jon 和 Johnny 相同,则 John 与 Johnny 也相同,即它们有传递和对称性。在结果列表中,选择字典序最小的名字作为真实名字。示原创 2020-09-06 18:05:37 · 141 阅读 · 0 评论 -
[LeetCode][C++]排序链表
148. 排序链表在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。示例 1:输入: 4->2->1->3输出: 1->2->3->4示例 2:输入: -1->5->3->4->0输出: -1->0->3->4->5代码:class Solution {public: ListNode* sortList(ListNode* head) { ListNod原创 2020-09-06 17:56:22 · 152 阅读 · 0 评论 -
[C++] TopK问题
1、快排思想void quickK(vector<int> &arr, int k, int left, int right){ if (left >= right) //重要,控制递归结束 return; int key = arr[left]; int i = left, j = right; while (i < j) { while (i < j && arr[j] >= key) j--; if (i原创 2020-09-06 17:02:51 · 203 阅读 · 0 评论 -
[LeetCode][C++]字符串转换整数/字符串解码
字符串转换整数 (atoi)请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下:如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一个有符号整数。假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成一个整数。该字符串在有效的整数部分之后也可能会存在多余的字符,那么这些字符可以被忽略,它们对函数不应该造成影响。注意:假如该字符串中的第一原创 2020-09-05 14:42:42 · 319 阅读 · 0 评论 -
[LeetCode][C++]完全平方数
367. 有效的完全平方数给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。说明:不要使用任何内置的库函数,如 sqrt。示例 1:输入:16输出:True示例 2:输入:14输出:False思路:牛顿迭代法:最快的是用一个公式:1+3+5+7+ … + (2n-1) = n^2代码:class Solution {public: bool isPerfectSquare(int num) {原创 2020-09-05 14:10:21 · 1612 阅读 · 0 评论 -
[LeetCode][C++]数据流的中位数
数据流的中位数中位数是有序列表中间的数。如果列表长度是偶数,中位数则是中间两个数的平均值。例如,[2,3,4] 的中位数是 3[2,3] 的中位数是 (2 + 3) / 2 = 2.5设计一个支持以下两种操作的数据结构:void addNum(int num) - 从数据流中添加一个整数到数据结构中。double findMedian() - 返回目前所有元素的中位数。示例:addNum(1)addNum(2)findMedian() -> 1.5addNum(3)find原创 2020-06-30 17:14:34 · 279 阅读 · 0 评论 -
[LeetCode][C++] 前 K 个高频元素
前 K 个高频元素给定一个非空的整数数组,返回其中出现频率前 k 高的元素。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]提示:你可以假设给定的 k 总是合理的,且 1 ≤ k ≤ 数组中不相同的元素的个数。你的算法的时间复杂度必须优于 O(n log n) , n 是数组的大小。题目数据保证答案唯一,换句话说,数组中前 k 个高频元素的集合是唯一的。你可以按任意顺序返回答案原创 2020-06-30 17:43:39 · 563 阅读 · 0 评论 -
[LeetCode][C++] 打家劫舍
打家劫舍你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。偷窃到的最高金额 = 1 + 3 = 4 。示例 2:输入:[2,7原创 2020-07-15 23:12:19 · 362 阅读 · 0 评论 -
[LeetCode][C++]零钱兑换
零钱兑换给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。示例 1:输入: coins = [1, 2, 5], amount = 11输出: 3解释: 11 = 5 + 5 + 1示例 2:输入: coins = [2], amount = 3输出: -1说明:你可以认为每种硬币的数量是无限的。思路:背包问题。设dp[amount +1]=amount +1 。初原创 2020-07-16 23:13:45 · 683 阅读 · 0 评论 -
[LeetCode][C++]摆动排序 II
摆动排序 II给定一个无序的数组 nums,将它重新排列成 nums[0] < nums[1] > nums[2] < nums[3]… 的顺序。示例 1:输入: nums = [1, 5, 1, 1, 6, 4]输出: 一个可能的答案是 [1, 4, 1, 5, 1, 6]示例 2:输入: nums = [1, 3, 2, 2, 3, 1]输出: 一个可能的答案是 [2, 3, 1, 3, 1, 2]说明:你可以假设所有输入都会得到有效的结果。进阶:你能用 O(n)原创 2020-07-12 01:35:24 · 232 阅读 · 0 评论 -
[LeetCode][C++] 合并两个有序数组
合并两个有序数组给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 = [2,5,6], n = 3输出: [1,2,2,3,5,6]思路:特殊情原创 2020-05-08 20:06:54 · 532 阅读 · 1 评论 -
[LeetCode][C++]字符串中的第一个唯一字符
字符串中的第一个唯一字符给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。示例:s = “leetcode”返回 0s = “loveleetcode”返回 2**提示:**你可以假定该字符串只包含小写字母。思路:记录每个字母出现的次数以及第一次出现的位置索引,最后进行比较。代码:class Solution {public: int firstUniqChar(string s) { int count[26][2]={0原创 2020-06-20 22:36:30 · 225 阅读 · 0 评论 -
[LeetCode][C++]移动零
移动零给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。思路:方法一:借助vector自身特性,建立迭代器,发现0则擦去,并且在末尾添加0。方法二:设置两个指针,一个用于检测当前非零元素,另一个用于指示当前非零元素插入的位置。代码:方法一:void moveZeroes(vector<int&g原创 2020-06-21 15:09:07 · 263 阅读 · 0 评论 -
[LeetCode][C++]最小栈
最小栈设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。示例:输入:[“MinStack”,“push”,“push”,“push”,“getMin”,“pop”,“top”,“getMin”][ [ ],[-2],[0],[-3],[ ],[ ],[ ],[ ] ]输出:[null,null,n原创 2020-06-30 16:34:22 · 163 阅读 · 0 评论 -
[LeetCode][C++]二叉树中的最大路径和
二叉树中的最大路径和给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。示例 1:输入: [1,2,3] 1 / \ 2 3输出: 6示例 2:输入: [-10,9,20,null,null,15,7] -10 / \ 9 20 / \15 7输出: 42思路:假设某个点为根节点,其也为迭代的点,此时的路径和为ret,递归函数fff。递归原创 2020-07-15 22:31:30 · 811 阅读 · 0 评论 -
[LeetCode][C++]最长连续序列
最长连续序列给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为 O(n)。示例:输入: [100, 4, 200, 1, 3, 2]输出: 4解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。思路:使用unordered_set记录数组中出现的数字。其时间复杂度为O(n),空间复杂度O(1)。初始化最长序列长度max_length=0。遍历数组:(1)若nums[i]-1不存在,则进行下一步的继续搜寻。这是为了防止重复搜索了某一段最长连续序列的子原创 2020-07-15 22:44:32 · 601 阅读 · 0 评论 -
[LeetCode][C++]缺失数字
缺失数字给定一个包含 0, 1, 2, …, n 中 n 个数的序列,找出 0 … n 中没有出现在序列中的那个数。示例 1:输入: [3,0,1]输出: 2示例 2:输入: [9,6,4,2,3,5,7,0,1]输出: 8说明:你的算法应具有线性时间复杂度。你能否仅使用额外常数空间来实现?思路:我们将每个数字 i 填到对应的nums[ i ] 上,具体如下:遍历序列,初始化n的位置索引-1,认为其不存在。若元素nums[ i ] 等于n,则记录n的当前位置索引 i。若元素n原创 2020-07-20 00:41:47 · 518 阅读 · 0 评论 -
[LeetCode][C++]最长上升子序列/最大子序和
最长上升子序列给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。说明:可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。你算法的时间复杂度应该为 O(n2) 。进阶: 你能将算法的时间复杂度降低到 O(n log n) 吗?思路:采用动态规划,设dp[i]是以元素nums[i]结尾的最长升序列长度。初始化最长序列长度max_lengt原创 2020-07-16 23:01:39 · 614 阅读 · 0 评论 -
[LeetCode][C++]二叉树的最近公共祖先
二叉树的最近公共祖先给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4]示例 1:输入: root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1输出: 3解释:原创 2020-07-11 01:19:10 · 777 阅读 · 0 评论 -
[LeetCode][C++]八皇后及N皇后的解法
八皇后及N皇后的解法首先看看八皇后问题:在8X8的国际象棋棋盘上放置8个皇后,使这8个皇后中任意两个不在同一行、同一列、同一斜线上。试求出可能的解法以及总的解法个数。分析:(1)此问题的解必然是一个长度为8的向量,即在64个格子中选取8个,即C 8(上)64(下) = 4.426*10^9种方案,但此思路消耗太大(2)如果我们这样想,设定一个数列loca[8],其中loca[i]代表第i行的皇后所在的列数,由于皇后不在同一行同一列,因此可供选择集合石{0,1,2,3,4,5,6,7},而此时的解集转载 2020-08-01 00:40:55 · 462 阅读 · 2 评论 -
[LeetCode][C++]矩阵中的最长递增路径
矩阵中的最长递增路径给定一个整数矩阵,找出最长递增路径的长度。对于每个单元格,你可以往上,下,左,右四个方向移动。 你不能在对角线方向上移动或移动到边界外(即不允许环绕)。示例 1:输入: nums =[[9,9,4],[6,6,8],[2,1,1]]输出: 4解释: 最长递增路径为 [1, 2, 6, 9]。示例 2:输入: nums =[[3,4,5],[3,2,6],[2,2,1]]输出: 4解释: 最长递增路径是 [3, 4, 5, 6]。注意不允许在对角线方原创 2020-07-16 23:38:08 · 1007 阅读 · 0 评论 -
[LeetCode][C++]计数质数
计数质数统计所有小于非负整数 n 的质数的数量。示例:输入: 10输出: 4解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。思路:强调一下,1既不是质数,也不是合数。对于2,3这样的质数,我们将其倍数标记为不是质数。剩下的就都是质数了。埃拉托斯特尼筛法,自己百度。代码:class Solution {public: int countPrimes(int n) { int count=0; //1不原创 2020-07-20 00:31:25 · 529 阅读 · 0 评论 -
[LeetCode][C++] 两整数之和
两整数之和不使用运算符 + 和 - ,计算两整数 a 、b 之和。示例 1:输入: a = 1, b = 2输出: 3示例 2:输入: a = -2, b = 3输出: 1思路:这种看起来基础又很奇怪的题我一般先想到位运算,但是具体怎么运算,我不懂,于是参考别人的博客,链接1写的挺有道理,直接copy。。在位运算操作中,异或的一个重要特性是无进位加法。a = 5 = 0101b = 4 = 0100a ^ b 如下:0 1 0 10转载 2020-07-20 23:02:32 · 774 阅读 · 0 评论 -
[LeetCode][C++] LRU缓存机制
LRU缓存机制运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果关键字 (key) 存在于缓存中,则获取关键字的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字/值」。当缓存容量达到上限时,它应该在写入新数据之前删除最久未使用的数据值,从而为新的数据值留出空间。进阶:你是原创 2020-07-20 23:40:49 · 181 阅读 · 0 评论 -
[LeetCode][C++]84. 柱状图中最大的矩形
84. 柱状图中最大的矩形给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为 [2,1,5,6,2,3]。图中阴影部分为所能勾勒出的最大矩形面积,其面积为 10 个单位。示例:输入: [2,1,5,6,2,3]输出: 10思路:看别人的博客表示,对于柱子 iii ,在其两边延伸,直到遇到高度比自己小的,作为边界。然后两个边界之间就是柱子 iii原创 2020-08-01 20:47:02 · 239 阅读 · 0 评论 -
[LeetCode][C++]43. 字符串相乘
43. 字符串相乘给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = “2”, num2 = “3”输出: “6”示例 2:输入: num1 = “123”, num2 = “456”输出: “56088”说明:num1 和 num2 的长度小于110。num1 和 num2 只包含数字 0-9。num1 和 num2 均不以零开头,除非是数字 0 本身。不能使用任何标准库的大原创 2020-08-13 23:57:54 · 357 阅读 · 0 评论 -
[LeetCode][C++]搜索旋转排序数组 I/ II
81. 搜索旋转排序数组 II假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,0,1,2,2,5,6] 可能变为 [2,5,6,0,0,1,2] )。编写一个函数来判断给定的目标值是否存在于数组中。若存在返回 true,否则返回 false。示例 1:输入: nums = [2,5,6,0,0,1,2], target = 0输出: true示例 2:输入: nums = [2,5,6,0,0,1,2], target = 3输出: false进阶:这是 搜原创 2020-08-16 22:38:50 · 363 阅读 · 0 评论 -
[LeetCode][C++]Pow(x, n)
50. Pow(x, n)实现 pow(x, n) ,即计算 x 的 n 次幂函数。示例 1:输入: 2.00000, 10输出: 1024.00000示例 2:输入: 2.10000, 3输出: 9.26100示例 3:输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25说明:-100.0 < x < 100.0n 是 32 位有符号整数,其数值范围是 [−231, 231 − 1] 。代码:class S原创 2020-09-04 11:52:11 · 163 阅读 · 0 评论 -
[LeetCode][C++]鸡蛋掉落
鸡蛋掉落你将获得 K 个鸡蛋,并可以使用一栋从 1 到 N 共有 N 层楼的建筑。每个蛋的功能都是一样的,如果一个蛋碎了,你就不能再把它掉下去。你知道存在楼层 F ,满足 0 <= F <= N 任何从高于 F 的楼层落下的鸡蛋都会碎,从 F 楼层或比它低的楼层落下的鸡蛋都不会破。每次移动,你可以取一个鸡蛋(如果你有完整的鸡蛋)并把它从任一楼层 X 扔下(满足 1 <= X <= N)。你的目标是确切地知道 F 的值是多少。无论 F 的初始值如何,你确定 F 的值的最小原创 2020-05-08 20:43:50 · 485 阅读 · 0 评论