有一个整数数组,求出两两之差绝对值最小的值,java代码
时间: 2024-11-13 07:39:47 浏览: 14
1.给出一个整数数组,求其中任意两个元素之差的最大值。
5星 · 资源好评率100%
为了找到一个整数数组中两两元素之间的差绝对值最小的值,你可以使用哈希集合(HashSet)来存储数组中的元素,然后遍历一次数组,对于每个元素,计算它与集合中所有元素的差的绝对值,并更新当前最小差值。最后返回这个最小差值即可。以下是Java代码示例:
```java
import java.util.HashSet;
import java.util.Set;
public class MinDifference {
public int findMinDifference(int[] nums) {
if (nums == null || nums.length < 2) return 0; // 如果数组为空或只有一个元素,直接返回0
// 使用HashSet存储数组中的唯一元素
Set<Integer> set = new HashSet<>();
for (int num : nums) {
set.add(num);
}
int minDiff = Integer.MAX_VALUE;
for (int i = 0; i < nums.length; i++) {
int num = nums[i];
// 计算与集合中其他元素的差绝对值
for (int diff : set) {
int absDiff = Math.abs(diff - num);
if (absDiff < minDiff) {
minDiff = absDiff;
}
}
}
return minDiff;
}
public static void main(String[] args) {
MinDifference obj = new MinDifference();
int[] nums = {4, 2, 1, 3};
System.out.println("最小差值: " + obj.findMinDifference(nums)); // 示例输出: 最小差值: 0
}
}
```
阅读全文