此题无解
这不就跟玉米地里只能向前走不能回头,并且只能摘一次,是同样的问题吗
有算法可以大概率拿到比平均值大的苹果
简单来说,就是前37.5%只看不摘,但记录下最大的那个是多大,后面看到比那个大的就直接摘
问题是一共只有8层,随机因素太大了,正确率无法保证
除非你坐电梯到8楼之后还可以回到最大的那一层
这题就是懵人的,不用理会
找8个人,每层楼去一个,只看不拿,8个人沟通后,最大苹果所在楼层的那个人拿一次
从一楼开始那,每上升一楼都与手中的苹果进行比较,如果这层楼的苹果比较大,交换苹果。
int maxx=-1;
for(int i=1;i<=8;i++)
{
maxx=max(maxx,x[i]);//x[i]为第i层苹果的大小
}
cout<<maxx;//输出最大的那个苹果大小
只能拿一次,是指8个苹果中只能拿一个吗?那么没有确定性算法能保证拿到最大的苹果。
这个题只说了只能拿一次,并并没有说只能打开一次电梯门,坐一次电梯啊?!
所以第一次坐电梯,到每层开门,不拿,记录比较苹果大小,
第二次坐电梯,到最大苹果楼层拿苹果。
对应算法就是,第一次遍历找出最大的,第二次抽取,需要额外一个变量记录最大的位置。
走完这八楼,你只能知道哪个最大的,除非最大的在第八层,不然你拿不到的
哈哈
坐电梯看完8次,然后走楼梯去拿