128 / 205
LeetCode · MediumO'rta20 ball· ~25 daqiqa

Maximum Erasure Value

Sizga butun sonlardan iborat nums massivi berilgan. Siz massivdan takrorlanmaydigan elementlar bilan iborat uzluksiz qism-massivni o'chirish orqali ball yig'aysiz. Ball sifatida o'chirilgan elementlar yig'indisi hisoblanadi.

Bir ishda yig'ish mumkin bo'lgan maksimal ballni toping.

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

Misollar

kod
Input: nums = [4,2,4,5,6]
Output: 17
Tushuntirish: Eng yuqori ball [2,4,5,6] yig'indisiga teng: 2+4+5+6=17.
kod
Input: nums = [5,2,1,2,5,2,1,2,5]
Output: 8
kod
Input: nums = [1]
Output: 1
kod
Input: nums = [1, 2, 3, 4]
Output: 10

Maslahatlar

  1. "Takrorlanmaydigan uzluksiz qism-massiv" degan shart o'zgaruvchan uzunlikdagi oyna (sliding window) qo'llashga ishora qiladi — oyna ichida qaysi sonlar borligini kuzatib boring.
  2. Oyna ichidagi sonlarni saqlaydigan set (map) va joriy yig'indini yuriting; oynani o'ngga kengaytirganda agar shu son oynada allaqachon bo'lsa, chap chetdan sonlarni chiqarib (yig'indidan ayirib, setdan o'chirib) takrorlanish yo'qolguncha torayting, so'ng yangi sonni qo'shib joriy yig'indini eng yaxshi natija bilan solishtiring.