<分区>
我得到了一个应该是连续的数组,如下所示:
{4,5,7,8,9,10} // missing 6
我应该有效地找到丢失的 6 个。
我想过做二分查找,查mid +1,mid -1。
但我一直认为会有很多基本案例。我一直失败...
这不应该是一个这么难的问题,但我不知道为什么我这么努力:/
有人可以指导我完成这个吗??
非常感谢你
<分区>
我得到了一个应该是连续的数组,如下所示:
{4,5,7,8,9,10} // missing 6
我应该有效地找到丢失的 6 个。
我想过做二分查找,查mid +1,mid -1。
但我一直认为会有很多基本案例。我一直失败...
这不应该是一个这么难的问题,但我不知道为什么我这么努力:/
有人可以指导我完成这个吗??
非常感谢你
最佳答案
始终 keep it simple伙伴 。您始终可以在 N 时间复杂度内执行此操作。
int[] arr = new int[]{4,5,7,8,9,10};
int missing=0;
for(int i=0;i<arr.length;i++)
{
int x = arr[++i];
int y = arr[i] +1;
if(x != y )
{
missing = y;
break;
}
}
System.out.println(missing);
关于java - 在整数数组中查找缺失的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30148078/