我遇到了这个问题,你给了一个数字N
作为输入,然后是N个数字(其中3 <= N <= 2500).这些N
数字是算术级数(大小N+1
)的一部分,从中删除了一个数字.所以任务是找到丢失号码.例如
5 1 3 5 9 11
输出是 7
我提出了两种方法,第二种方法通过所有测试用例,但第一种方法在某些(隐藏)情况下失败.
首先,我将解释第二种方法
方法二
Let diff=(last_number-first_number)/N //Considering 0 based indexing for i=0 to (N-2) if( array[i+1] is not equal to (array[i]+diff)) print (array[i]+diff) break
该方法通过了所有测试用例.现在我实现的第一种方法和某些测试用例失败的方法如下
方法I
//Considering 0 based indexing for i=1 to (N-2) if (2*array[i] is not equal to (array[i-1]+array[i+1])) then if( (array[i]-array[i-1])< (array[i+1]-array[i])) print 2*array[i]-array[i-1] else print 2*array[i]-array[i+1] break
任何人都可以解释有什么问题METHOD I
?我错过了哪些案例.谢谢.