例如:
数组{2, 4, 1, 16, 7, 5, 11, 9}中,数对之差的最大值是11(16 - 5)
分析:
看到这个题目,很多人的第一反应是找到这个数组的最大值和最小值,然后觉得最大值减去最小值就是最终的结果...;
(2)被减数和减数都在第二个子数组中,即第二个子数组中数对之差的最大值;
(3)被减数在第一个子数组中,是第一个子数组的最大值;减数在第二个子数组中,是第二个子数组的最小值。...min)
{
if(start >= end){ // 递归结束条件
*max = *min = *start;
return 0x80000000; // -2147483648
}..., min;
int MaxDiff_Num = MaxDiff_Find(array, array+len-1, &max, &min);
printf("maxDiff_Num: %d\n\n"...第二种方法需要一个长度为n-1的辅助数组,因此其空间复杂度是O(n)。
第三种方法则没有额外的时间、空间开销,并且它的代码是最简洁的,因此这是最值得推荐的一种解法。
源码