Để tìm số lớn thứ hai trong một mảng các số nguyên trong Java, ta có thể làm như sau:
- Khai báo một mảng số nguyên và gán giá trị cho các phần tử trong mảng.
- Khai báo hai biến
max1vàmax2với giá trị ban đầu là số nhỏ nhất. - Duyệt qua mảng và so sánh từng phần tử với
max1, nếu phần tử lớn hơnmax1, ta gán giá trị củamax1chomax2và gán giá trị của phần tử đó chomax1. - Nếu phần tử nằm giữa
max1vàmax2, ta gán giá trị của phần tử đó chomax2. - Trả về giá trị của
max2sau khi duyệt hết mảng.
Đoạn code mẫu:
public class SecondLargestNumberInArray {
public static void main(String[] args) {
int[] arr = {5, 10, 15, 20, 25, 30, 35};
int max1 = Integer.MIN_VALUE;
int max2 = Integer.MIN_VALUE;
for (int i = 0; i < arr.length; i++) {
if (arr[i] > max1) {
max2 = max1;
max1 = arr[i];
} else if (arr[i] > max2 && arr[i] != max1) {
max2 = arr[i];
}
}
System.out.println("Số lớn thứ hai trong mảng là: " + max2);
}
}
Ở đây, ta khởi tạo max1 và max2 với giá trị ban đầu là Integer.MIN_VALUE để đảm bảo rằng mọi giá trị trong mảng đều lớn hơn max1 và max2. Tiếp theo, ta duyệt qua mảng và so sánh từng phần tử với max1. Nếu phần tử lớn hơn max1, ta gán giá trị của max1 cho max2 và gán giá trị của phần tử đó cho max1. Nếu phần tử nằm giữa max1 và max2, ta gán giá trị của phần tử đó cho max2. Cuối cùng, ta trả về giá trị của max2.

