我有一个长度为10的数组,其中填充了0-9的数字。
这些数字大部分是按顺序排列的。但是起始索引处的数字可以是任何数字,并且不知道数字是按升序还是降序排列的(一旦达到最小/最大数字,数字将绕回 - 例如,当它达到9时,0变成最小数字,反之亦然)。
恰好有一个数字不按顺序排列(好像被拔出来并随机插入到数组中一样)。
示例:
[4, 3, 1, 0, 9, 8, 7, 2, 6, 5]
索引7处的数字2是无序的。索引1和2之间的数字“间隙”是可以接受的,数字3或1都不被视为无序。
如何最好地确定无序数字的索引?
更多示例 - 不在正确位置上的数字用*标记:
[2, 3, *0, 4, 5, 6, 7, 8, 9, 1]
[5, 6, 7, 9, *8, 0, 1, 2, 3, 4]
[7, 6, 5, 4, 3, *8, 2, 1, 0, 9]
[0, *5, 1, 2, 3, 4, 6, 7, 8, 9]
[4, 3, *0, 2, 1, 9, 8, 7, 6, 5]
[1, 9, 2, 0, 3, 8, 4, 7, 5, 6]
,根据这些规则,你会说哪个数字是错位的?它们都有多个间隔,并且它们都环绕着。 - Anurag