Problem:
对于一个整数数列A[0], A[1], ..., A[N-1],要求在其中找两个数,使得它们的差的绝对值最小.
2 <= N <= 100, -1000 <= A[i] <= 1000.
请实现下面Solution类中计算minDifference(A)的函数,返回值为能得到的最小差.
class Solution {
public:
int minDifference(vector<int> A) {
}
};
例1:当A = {2, 7, -2}, 返回4.
例2:当A = {-8, 10, 30, 10}, 返回0.
注意:
1. 你只需要提交Solution类的代码,你在本地可以编写main函数测试程序,但不需要提交main函数的代码. 注意不要修改类和函数的名称.
2. 如果使用全局变量或类成员函数,请记得在minDifference中初始化,因为测试时,minDifference可能在一次程序执行中被反复调用.
Solution:
class Solution {
public:
int minDifference(vector<int> A) {
sort(A.begin(), A.end());
int min = A[1] - A[0];
for (int j = 2; j < A.size(); j++)
{
int t;
t = A[j] - A[j - 1];
if (t < min)
{
min = t;
}
}
return min;
}
};
本文介绍了一种算法,用于从整数序列中找到两数之差的绝对值最小的数对,并提供了一个C++实现示例。该算法首先对序列进行排序,然后遍历排序后的序列来确定最小差值。
925

被折叠的 条评论
为什么被折叠?



