java,四个值实装第 2 大值查找逻辑
时间: 2024-05-08 14:17:28 浏览: 75
以下是实现第二大值查找的Java代码:
```java
public static int findSecondLargest(int[] arr) {
// 首先判断数组长度是否小于2
if (arr.length < 2) {
throw new IllegalArgumentException("Array length must be greater than 1");
}
int largest = Integer.MIN_VALUE;
int secondLargest = Integer.MIN_VALUE;
for (int i = 0; i < arr.length; i++) {
// 如果当前元素比最大值还大,则将最大值赋值给第二大值,将当前元素赋值给最大值
if (arr[i] > largest) {
secondLargest = largest;
largest = arr[i];
} else if (arr[i] > secondLargest && arr[i] != largest) {
// 如果当前元素比第二大值大,但不比最大值大,则将当前元素赋值给第二大值
secondLargest = arr[i];
}
}
// 如果数组中只有相同元素,则不存在第二大值
if (secondLargest == Integer.MIN_VALUE) {
throw new IllegalArgumentException("Array contains only same elements");
}
return secondLargest;
}
```
该算法的时间复杂度为O(n),空间复杂度为O(1)。
阅读全文