📅  最后修改于: 2023-12-03 15:42:12.142000             🧑  作者: Mango
本题要求使用Java语言实现一个函数,该函数接受一个整数数组作为参数,并返回数组中第二小的元素。如果数组中不存在第二小的元素,则返回-1。以下是Java代码片段的示例:
public static int secondSmallest(int[] arr) {
int smallest = Integer.MAX_VALUE;
int secondSmallest = Integer.MAX_VALUE;
for (int i = 0; i < arr.length; i++) {
if (arr[i] < smallest) {
secondSmallest = smallest;
smallest = arr[i];
} else if (arr[i] < secondSmallest && arr[i] != smallest) {
secondSmallest = arr[i];
}
}
return secondSmallest == Integer.MAX_VALUE ? -1 : secondSmallest;
}
该函数采用了遍历数组的方式,同时维护了当前数组中最小的元素和次小的元素,依次比较每个元素与它们的大小关系,最终返回次小的元素。
在代码实现中,需要注意以下几点:
接下来是代码片段的Markdown格式:
## Java代码
```java
public static int secondSmallest(int[] arr) {
int smallest = Integer.MAX_VALUE;
int secondSmallest = Integer.MAX_VALUE;
for (int i = 0; i < arr.length; i++) {
if (arr[i] < smallest) {
secondSmallest = smallest;
smallest = arr[i];
} else if (arr[i] < secondSmallest && arr[i] != smallest) {
secondSmallest = arr[i];
}
}
return secondSmallest == Integer.MAX_VALUE ? -1 : secondSmallest;
}
其中,该函数采用了遍历数组的方式,同时维护了当前数组中最小的元素和次小的元素,依次比较每个元素与它们的大小关系,最终返回次小的元素。
在代码实现中,需要注意以下几点: