最近做的一个面试题:
有一个整数数组,长度为9,数组里的值是多少不清楚,但是知道数组中有8个值是相等,其中一个小于其他8个值,目前有一个标准函数,compare(int[] a, int[] b),返回...0(相等)、1(大于)、-1(小于),最少调用compare标准函数几次一定能够找出不同的值,请描述具体步骤,并用代码实现,语言不限
思路:
先分成三组 一组三个。...每一组三个数相加,其中有一组和其他两个组不一样,然后范围就缩小到这一组,就三个数,然后可以再两两相加,然后分析这三数之间的大小,调用两次就行
之间上代码(方法虽笨,可以实现,希望有好的方法指教!!)...num = new int[]{2,2,2,2,2,2,1,2,2};
int[] a = new int[]{num[0],num[1],num[2]};
int[] b...],num[4],num[5]};
int[] c = new int[]{num[6],num[7],num[8]};
int result = compare(a,b)