题目:
有一个存有1-100的升序的数组。也就是存有1,2,3,4……100这100个数字的数组。如果从中删除一个数字,那么该数字后面的所有数字依次前移。现在已经删除了一个数字,问如何找出删除的是哪个数字。
介绍:
这是本人视屏面试的一道逻辑题,当时可能由于紧张也可能是因为视屏面试听不太清楚,题目的理解出现了错误,我当时的理解是存储比如1,3,5,6这样的不连续的数字。所以花了比较长的时间想了一些其他的办法,但是不允许其他的辅助,所以行不通。所以之后问清楚是1,2,3这样的,那么就简单多了。
思路1:
由于数组存储的是1,2,3,4这样的有规律的数组,所以这些数组中的元素和下标之间有着紧密的联系。所以没有移位的元素与下标之间相差1,移位了的差2.所以从头向后一次查找,找到第一个元素和下标相差2的位置,该下标加1就是被删除的数。
思路2:
因为只要有一个数被移动了