📅  最后修改于: 2023-12-03 15:37:36.225000             🧑  作者: Mango
在进行开发过程中,我们可能会遇到这样一种场景:给定一个包含1到n个数字的数组,其中某些数字会出现重复,现在需要找出重复的数字并输出。
在本文中,我们将分享如何在Java中找出1到n个数字之间的重复数字,希望能够对您有所帮助。
HashSet是Java中的一个数据结构,可以用于存储不重复的元素。可以借助这个数据结构很好地实现我们的需求。
代码如下:
public static void findDuplicateNumber(int[] nums) {
Set<Integer> set = new HashSet<>();
for (int num : nums) {
if (set.contains(num)) {
System.out.println(num);
} else {
set.add(num);
}
}
}
这段代码的实现思路是,遍历数组中的每一个数字,如果该数字在HashSet中已经存在,则说明该数字是重复数字,将其输出即可;否则将该数字加入HashSet中。
如果我们将数组进行排序,那么所有的重复数字都会出现在一起,可以通过遍历数组即可找到重复数字。
代码如下:
public static void findDuplicateNumber(int[] nums) {
Arrays.sort(nums);
for (int i = 1; i < nums.length; i++) {
if (nums[i] == nums[i - 1]) {
System.out.println(nums[i]);
}
}
}
这段代码的实现思路是,先将数组进行排序,然后遍历数组,如果当前数字与前一个数字相同,则说明该数字是重复数字,将其输出即可。
本文中分享了两种解决方案,一种是利用HashSet数据结构,另一种是利用排序。两种方法各有优劣,选择哪种方法取决于具体的需求和场景。
无论选择哪种方法,我们在处理数组时一定要注意越界问题,避免出现不必要的错误。