diff --git a/408/《数据结构》综合应用题.md b/408/《数据结构》综合应用题.md index af90f8d..ba627fb 100644 --- a/408/《数据结构》综合应用题.md +++ b/408/《数据结构》综合应用题.md @@ -66,3 +66,17 @@ void cmpCountSort(int a[], int b[], int n){ --- +1. `b[] = (-10, 10, 11, 19, 25, 25)` +2. $\frac{n * (n - 1)}{2}$ +3. 不是,不能保证两元素相同时,先出现的元素在前,应改为 `if (a[i] <= a[j]) count[j]++;` + +## [2020-41] + +定义三元组 $(a, b, c)$(其中 $a, b, c$ 均为正数)的距离 $D = |a - b| + |b - c| + |c - a|$。给定 3 个非空整数集合 $S_1$、$S_2$ 和 $S_3$,按升序分别存储在 3 个数组中。设计一个尽可能高效的算法,计算并输出所有可能的三元组 $(a, b, c) (a \in S_1, b \in S_2, c \in S_3)$ 中的最小距离。例如 $S_1 = \{-1, 0, 9\}, S_2 = \{-25, -10, 10, 11\}, S_3 = \{2, 9, 17, 30, 41\}$,则最小距离为 2,相应的三元组为 $\{9, 10, 9\}$。要求: + +1. 给出算法的基本设计思想。 +2. 根据设计思想,采用 C 或 C++ 语言描述算法,关键之处给出注释。 +3. 说明你所设计算法的时间复杂度和空间复杂度。 + +--- +