几何距离分析

给你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,就很容易超时。而这种从几何上来解决这个问题,很妙!!

posted on 2012-05-04 14:50  即为将军  阅读(343)  评论(0)    收藏  举报

导航