编写一个程序,找出一个整数数组中第二大的数是多少。
public class SecondLargestNumber {
public static void main(String[] args) {
int[] nums = {5, 10, 3, 8, 9}; // 示例整数数组
int secondLargest = findSecondLargest(nums);
System.out.println("第二大的数是:" + secondLargest);
}
public static int findSecondLargest(int[] nums) {
if (nums == null || nums.length < 2) {
System.out.println("数组长度小于2,无法找出第二大的数");
return Integer.MIN_VALUE;
}
int largest = Integer.MIN_VALUE;
int secondLargest = Integer.MIN_VALUE;
for (int num : nums) {
if (num > largest) {
secondLargest = largest;
largest = num;
} else if (num > secondLargest && num != largest) {
secondLargest = num;
}
}
return secondLargest;
}
}
当我们需要找出一个整数数组中的第二大数时,我们可以遍历数组,并同时维护两个变量:一个用来记录当前已经找到的最大值,另一个用来记录第二大值。初始时,我们将这两个变量都设置为整型的最小值。
然后,我们遍历数组中的每个元素。对于当前元素,我们首先检查它是否大于当前已知的最大值。如果是,我们就更新最大值,并将原先的最大值作为第二大值。如果当前元素不大于最大值,我们再检查它是否大于当前已知的第二大值,且不等于最大值。如果是,我们就更新第二大值。
最终,当我们遍历完整个数组时,第二大值就是我们要找的结果