如何找出线性表中差值最大的两个数
时间: 2023-05-11 19:03:51 浏览: 87
可以遍历整个线性表,记录当前最小值和最大值,然后计算它们之间的差值,如果这个差值比之前记录的最大差值还要大,那么就更新最大差值和对应的两个数。最后返回这两个数即可。以下是示例代码:
int[] findMaxDiff(int[] nums) {
int min = nums[0];
int max = nums[0];
int maxDiff = 0;
int[] result = new int[2];
for (int i = 1; i < nums.length; i++) {
if (nums[i] < min) {
min = nums[i];
} else if (nums[i] > max) {
max = nums[i];
}
int diff = max - min;
if (diff > maxDiff) {
maxDiff = diff;
result[0] = min;
result[1] = max;
}
}
return result;
}
相关问题
如何找出线性表中差值最大的两个数并返回差值的绝对值
可以使用双重循环遍历线性表,依次计算每对数之间的差值,并记录差值最大的两个数。代码示例如下:
int findMaxDiff(vector<int> nums) {
int maxDiff = 0;
int n = nums.size();
int num1 = 0, num2 = 0;
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
int diff = abs(nums[i] - nums[j]);
if (diff > maxDiff) {
maxDiff = diff;
num1 = nums[i];
num2 = nums[j];
}
}
}
return maxDiff;
}
注意,这个算法的时间复杂度为 O(n^2),如果线性表很大,可能会比较慢。如果需要更快的算法,可以考虑使用排序等其他方法。
假设线性表中存储了n个数,请找出其中相差(差的绝对值)最大的两个数,输出他们的绝对值
这个问题可以使用一次遍历的方法解决。我们可以定义两个变量,一个用来记录当前找到的最大值,一个用来记录当前找到的最小值。然后遍历整个线性表,对于每个数,如果它比当前最大值大,就更新最大值;如果它比当前最小值小,就更新最小值。最后输出最大值与最小值的差的绝对值即可。
以下是示例代码:
```python
def find_max_diff(nums):
if len(nums) < 2:
return 0
max_num = nums[0]
min_num = nums[0]
for num in nums:
if num > max_num:
max_num = num
if num < min_num:
min_num = num
return abs(max_num - min_num)
```
如果线性表中存储的是以下数字:[1, 5, 3, 9, 2, 8, 4, 7, 6],则输出结果为8。