比如一个数组 int[] arrays = new int[]{1,2,3,6,10};
能正确返回4,注意整形数组比较大,10w数量级,
和找最大值一样。
对于有n个元素的数组a,就是先找出n-1个元素的距离集..找出最大值
int[] a = new int[]{1,2,3,6,10};//从小到大排序过,没有就要先排序这种方法是一般方法,但是10W数量级性能很差,而且数组还是乱序..
追答首先你转述的题目和所举的例子比你拿到原题都更简陋...就缺少了(让别人代你追求效率)所需的精确题意....
你给出的是“有序”的例子,乱序情况的“空缺数”具体所指就含糊了。比如[1,5,2]最大的是1,5之间的4?还是排序后[1,2,5]的3..。。
你说找出“最小”空缺数,但例子里面给出的是“最大”空缺值4...自相矛盾怎么去追求效率?
由于你的不精确,别人只能给出基本适用的方案....而且所给出的已经是空间时间上都是O(1)的算法(对每个输入只执行固定的几条指令)..再提高就是改成对应cpu核数的多线程.不属于算法了..
本回答被提问者和网友采纳