93 / 205
LeetCode · EasyOson10 ball· ~15 daqiqa

Third Maximum Number

Sizga butun sonlardan iborat nums massivi berilgan. Unda uchinchi eng katta o'zaro farqli (distinct) sonni qaytaring. Agar bunday son mavjud bo'lmasa, eng katta sonni qaytaring.

"Farqli" — takrorlanuvchi sonlar bir marta sanaladi. Masalan, [2, 2, 3, 1] uchun uchinchi eng katta farqli son — 1.

example.go
func solve(nums []int) int {
    // ...
}

Misollar

kod
Input: nums = [3,2,1]
Output: 1
Tushuntirish: Uchinchi eng katta son 1.
kod
Input: nums = [1,2]
Output: 2
kod
Input: nums = [2,2,3,1]
Output: 1

Maslahatlar

  1. Massivni saralash shart emas — faqat eng katta uchta noyob qiymatni (birinchi, ikkinchi, uchinchi) bitta o'tishda kuzatib borish mumkin.
  2. Uchta o'zgaruvchi (birinchi, ikkinchi, uchinchi eng katta) saqlang; har bir sonni avval takrorlanmasligi uchun tekshiring, so'ng u qaysi o'ringa mos kelishiga qarab o'zgaruvchilarni siljiting; agar uchinchisi topilmagan bo'lsa, javob sifatida eng kattasini qaytaring.