132 / 205
LeetCode · MediumO'rta20 ball· ~20 daqiqa

Minimum Operations to Make Array Equal

arr massivi berilgan bo'lib, bunda arr[i] = (2 * i) + 1 formula asosida belgilanadi (0-indekslanadi). Massiv uzunligi n.

Bir operatsiyada siz massivning ixtiyoriy bir elementini x ga oshirish va boshqa bir elementini x ga kamaytirishingiz mumkin.

Massivning barcha elementlarini teng qilish uchun nechta operatsiya kerakligini toping.

example.go
func solve(n int) int {
    // ...
}

Misollar

kod
Input: n = 3
Output: 2
Tushuntirish: arr = [1, 3, 5]. Maqsad hamma element 3 bo'lsin. 1 ni 2 ga oshir, 5 ni 2 ga kamayt -> [3,3,3]. 2 operatsiya.
kod
Input: n = 6
Output: 9
kod
Input: n = 1
Output: 0
kod
Input: n = 5
Output: 6

Maslahatlar

  1. Massiv aslida oddiy formula bilan aniqlanadi (1, 3, 5, ...) — barcha elementlarni tekislash uchun kerakli operatsiyalar sonini n orqali to'g'ridan-to'g'ri ifodalab bo'lish-bo'lmasligini o'ylab ko'ring, sikl yozmasdan.
  2. arr elementlari markazga (o'rtacha qiymatga) nisbatan simmetrik joylashgan: eng chetdagi juftlik (eng kichik va eng katta) orasidagi masofa markazgacha bo'lgan masofaga teng, va bu masofalarning yig'indisi n va oraliq qadam (2) orqali n*n/4 formulasiga soddalashadi — buni kichik n larda qo'lda tekshirib ko'ring.