用java循环找出数组中第一个重复的数字
时间: 2023-09-01 07:07:30 浏览: 65
可以使用两个循环嵌套来遍历数组,外层循环从第一个元素开始,内层循环从当前元素的下一个元素开始,判断是否有重复的元素即可。如果找到了第一个重复的数字,就可以直接返回该数字。
以下是示例代码:
```java
public static int findFirstDuplicate(int[] arr) {
int n = arr.length;
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
if (arr[i] == arr[j]) {
return arr[i];
}
}
}
return -1; // 如果没有重复的数字,返回-1
}
```
这段代码的时间复杂度是 $O(n^2)$,因为需要使用两个循环嵌套来遍历整个数组。如果数组比较大,这种方法的效率可能不高。可以考虑其他更高效的算法,比如使用哈希表来实现。
相关问题
java中找出第一个数组中指定数字的下标,然后把下标存入新的数组
可以使用以下代码实现:
```java
public class Main {
public static void main(String[] args) {
int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = new int[arr1.length];
int num = 3; // 指定数字
int index = -1; // 指定数字的下标
for (int i = 0; i < arr1.length; i++) {
if (arr1[i] == num) {
index = i;
break;
}
}
if (index != -1) {
arr2[0] = index;
System.out.println("第一个数组中指定数字的下标为:" + index);
} else {
System.out.println("第一个数组中没有找到指定数字!");
}
}
}
```
其中,`arr1`为原始数组,`arr2`为新的数组,`num`为需要查找的数字,`index`为指定数字的下标。使用`for`循环遍历原始数组,找到第一个与指定数字相同的元素,将其下标存入新的数组中,并输出结果。如果没有找到指定数字,则输出相应提示信息。
接着找出数组中的最大元素和最小元素Java
可以使用循环遍历整个数组,同时记录最大值和最小值,比较每个元素与当前的最大值和最小值,更新最大值和最小值即可。
以下是示例代码:
```java
public class Main {
public static void main(String[] args) {
int[] arr = {5, 2, 7, 1, 9, 3};
int max = arr[0]; // 初始化为数组第一个元素
int min = arr[0]; // 初始化为数组第一个元素
for (int i = 1; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
}
if (arr[i] < min) {
min = arr[i];
}
}
System.out.println("最大值为:" + max);
System.out.println("最小值为:" + min);
}
}
```
输出结果为:
```
最大值为:9
最小值为:1
```