Để 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
max1
vàmax2
vớ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ủamax1
chomax2
và gán giá trị của phần tử đó chomax1
. - Nếu phần tử nằm giữa
max1
vàmax2
, ta gán giá trị của phần tử đó chomax2
. - Trả về giá trị của
max2
sau 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
.