如何在java上编写伪代码来解决这个问题



>假设 Alice 选择了三个不同的整数,并将它们以随机顺序放入堆栈 S 中。编写一段简短的直线伪代码(没有循环或递归),它只使用一个比较和一个变量 x,但概率为 2/3,在此代码结束时,变量 x 将存储 Alice 三个整数中最大的一个。争论为什么你的方法是正确的。

Java 上的数据结构

x = S.pop()
return max(S.pop(), x)

解释:

我有一个 S 堆栈 [A, B, C]

x = S.pop() // x points to A
return max(S.pop(), x) // compares B to A

一旦我知道最大是从 B 和 A 返回的,就有一种可能性是最大的整数不在这两个整数(B 和 A)之间,即 C所以。。我有两种可能性在 3 -> 2/3 之间获得更大的数字

最新更新