之前被淘宝面试的时候被问道这题,说数组A[]比数组B[]多出一个值,除多出的数外,这两个数组都包含了相同的元素,但顺序不同。
当时糊里糊涂的回答说
1、对两个数组先排序然后再逐个比较,
2、利用for循环对A[]中的值进行逐个比较,若在B[]中能找不到对应值则这个就是多出的数。
回答过后感觉这两种方法应该不是面试官要的答案。突然昨天晚上突然虎躯一震、灵光一闪想到一个方法觉得应该是对的,就是求多出的数只需要将数组A[]的元素全部相加的值减去数组B[]元素全部相加的值(Sum(A[])-Sum(B[]))。这样其实就可以得到了,在ACM中属于算法简单题,怪就怪当时没想到,纠结啊~~~