【发布时间】:2014-07-12 05:26:56
【问题描述】:
给定一个大小为 N 的数组 A,我如何计算对的数量(A[i],A[j]),以使它们之间的绝对差小于或等于 K,其中 K 是任何正自然数? (i、j<=N 和 i!=j)
我的做法:
对数组进行排序。
创建另一个数组来存储两个连续数字之间的绝对差。
我是否朝着正确的方向前进?如果是,那我该如何继续?
【问题讨论】:
-
数组A的大小是多少?如果不是太大,可以
for (i=0;i<size;i++) for (j=i+1; j<size;j++) if (abs(A[i]-A[j])<=K) res++; -
数组的大小接近10^6。我之前尝试过朴素的算法,但需要很长时间。我需要一个高效的算法。