几何距离分析
给你N个正整数,求两两之差的绝对值之和。比如有4个数分别为 3,2,6,5,则答案为 |3-2| + |3-6| + |3-5| + |2-6| + |2-5| + |6-5| =14
下面先对3,2,5,6进行从小到大的排序(这里可选这sort和qsort),保证每次相减都非负。
然后就用下面代码实现它:
sign记录这n个数,sum=0;
for(i=1;i<n;i++)
sum+= (sign[i]-sign[i-1])*i*(n-i);
//注:若按平常思路用两个for,就很容易超时。而这种从几何上来解决这个问题,很妙!!

浙公网安备 33010602011771号