Module: (Java) Untuk pernyataan gelung. Tugas biasa


Problem

13 /16


Maksimum kedua

Theory Click to read/hide

Tugas

N nombor diberikan. Cari elemen kedua terbesar dalam jujukan.

Masalah ini membenarkan dua tafsiran.
Sebagai contoh, jika kita diberi satu set nombor: \(10\ 15\ 20\ 35\ 14\ 35\ 10\), maka apakah jawapan yang sepatutnya ?
Di bawah "elemen kedua terbesar" atau hanya "maksimum kedua", boleh difahami sebagai:
1) nilai yang akan berada di tempat kedua terakhir jika kita menyusun (mengisih) semua nilai dalam susunan tidak menurun (setiap yang berikutnya lebih besar daripada atau sama dengan yang sebelumnya). Kemudian untuk set nombor yang dipertimbangkan jawapannya ialah nilai 35;
2) nilai elemen, yang lebih besar daripada maksimum sahaja. Maka jawapannya ialah 20.
Jika terdapat hanya satu elemen maksimum dalam set nombor (semua yang lain kurang), maka kedua-dua tafsiran adalah sama, dan jawapannya akan sama untuk kedua-dua kes, jika tidak, jawapannya akan berbeza.

Pertimbangkan kes pertama (kami akan menulis algoritma pada pseudokod).
Untuk mencari jawapan, kami akan menggunakan dua pembolehubah:
1) maksimum1 - nilai maksimum (maksimum pertama);
2) maksimum2 - maksimum kedua (jawapan kami).

Jika julat nilai berubah diketahui, maka sebagai nilai awal kita mengambil nombor yang jelas kurang daripada had bawah julat (contohnya, dengan julat dari -1000 kepada 1000 - ambil nombor -1001)
Jika julat nilai tidak diketahui, maka anda boleh menulis dua nombor input pertama ke dalam nilai awal pembolehubah max1 dan max2, dan kemudian membandingkannya dua pembolehubah. input N //bilangan nombor input a, b maks1 = a maks2 = b jika b > a, kemudian     maks1 = b     maks2 = a
Seterusnya, kami mempertimbangkan semua elemen lain (2 yang pertama telah dilihat, jadi kami akan bermula dari yang ke-3) nc untuk i dari 3 hingga n input a jika a > maksimum1 //ada nilai yang lebih besar daripada maksimum1 Itu max2 = max1 //bekas tinggi pertama menjadi kedua max1 = a //elemen baharu akan menjadi maksimum pertama sebaliknya //elemen seterusnya tidak melebihi max1 // ia perlu dibandingkan dengan nilai maksimum2 jika a > maksimum 2 Itu max2 = a //anggap ia sebagai nilai baharu max2 // max1 tidak berubah dalam kes ini Semua Semua kts
Cuba laksanakan sendiri algoritma ini.

Problem

Diberi N integer. Cari elemen kedua terbesar bagi jujukan (elemen yang akan berada di sebelah terakhir jika input diisih dalam tertib tidak menurun).

Input
Baris pertama menentukan nombor N (\(2<=N<=10^4\)). Diikuti oleh N baris, setiap baris satu integer tidak melebihi 105 modulo. 

Cetakan
Cetak elemen maksimum kedua.

 

Contoh

# Input Output
1 7
10
15
20
35
14
35
10
35
2 5
10
5
7
11
9
10