
作为 ACM 大赛的出题专家,详细讲解一道经典的 ACM 试题。以下是一道关于数组操作问题
的经典题目:
**题目名称**:
"最小差值对"(Minimum Difference Pair)
**题目描述**:
给定一个由 N 个整数组成的数组 A,请编写一个程序,找出数组中两个不同元素的差的最小
值。
**输入格式**:
- 第一行包含一个整数 N,表示数组 A 的长度(1 <= N <= 10^5)。
- 第二行包含 N 个以空格分隔的整数,表示数组 A 中的元素(每个元素的绝对值不超过
10^9)。
**输出格式**:
输出一个整数,表示数组中两个不同元素的差的最小值。
**示例输入**:
```
5
1 5 2 9 12
```
**示例输出**:
```
1
```
**解题思路**:
1. **排序**:首先,我们需要对数组 A 进行排序。排序后,相邻的元素之间的差值将是最
小的可能差值。
2. **遍历并计算差值**:然后,我们遍历排序后的数组,计算相邻两个元素之间的差值,并
记录这些差值中的最小值。
3. **输出结果**:最后,返回这个最小差值作为答案。
**代码实现**(以 Python 为例):
```python
def min_difference(nums):
nums.sort() # 对数组进行升序排序
min_diff = float('inf') # 初始化最小差值为正无穷大
for i in range(len(nums) - 1):
diff = abs(nums[i] - nums[i + 1]) # 计算相邻两个数的差值
min_diff = min(min_diff, diff) # 更新最小差值