这是一个采访问题:给定整数数组,找到最大值。和分钟。使用最小比较。

显然,我可以在数组上循环两次,并在最坏的情况下使用~2n比较,但我想做得更好。

最佳答案

1. Pick 2 elements(a, b), compare them. (say a > b)
2. Update min by comparing (min, b)
3. Update max by comparing (max, a)

这样,您将对2个元素进行3个比较,等于3N/2元素的N总比较。

关于arrays - 如何找到最高和分钟。在数组中使用最小比较?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13544476/

10-10 21:37