【发布时间】:2018-11-20 19:52:09
【问题描述】:
我正在尝试了解 Spoj 中 AGGRCOW - Aggressive cows 的问题。但是这个输出是怎么来的,我不明白。首先我想也许他们之间的距离就像这个输入:
Input: 5 3 1 2 4 8 9输出:3
首先我们将cow1 放在arr[0] 位置,然后将cow2 放在arr[2] 中。我们不会将cow2 放在arr1 中,因为这样它们之间就没有距离了(2-1=1)。现在cow2 和cow1 的距离是3 个单位。因此,我们将cow2 放在arr[2] 中。最后我们把cow3放在arr[3]中,因为cow3和cow2之间的距离在这里是4。然后我们比较这个3
但是当我尝试对此输入应用相同的逻辑时:
Input: 6 3 2 3 4 5 8 9输出:3
在我的逻辑中,它应该是 2。如果我们将 cow1 保存在 arr[0] 中,将 cow2 保存在 arr[2] 中,那么距离就是 4-2=2。而且是最低限度的。但是当我想通过谷歌搜索查看实际值应该是多少时,我发现它是 3。我不明白它是 3。为什么不是 2?我只想要这个问题的解释,而不是代码。
【问题讨论】:
标签: c arrays binary-search