Get Mystery Box with random crypto!

2579. Count Total Number of Colored Cells O'rta daraja: 257 | LeetCodin

2579. Count Total Number of Colored Cells

O'rta daraja: 2579. Count Total Number of Colored Cells
Mening yechimim: Java 1 Line | Math | 100% Faster | Explained

Salom! Kechagi masalaga yechim topamiz.

Vazifa
Sizning vazifangiz - bu har bir daqiqada (n daqiqa davomida) kataklarga, agar qo'shnisi bo'lmasa, qo'shni katak chizish va ularning sonini topish.

G'oya
Agar har xil n uchun kataklarni chizib va hisoblab ko'rsangiz, kataklarning yig'indisi arifmetik progressiyaning yig'indisi bilan bog'liqligini ko'rasiz.
NB: arifmetik progressiyaning d (qo'shni elementlarning farqi) 2ga teng.

Hisoblab chiqqanimdan keyin, kataklar soni nta elementning arifmetik yig'indisi va n-1 ta elementning arifmetik yig'indisi Sum(n) + Sum(n - 1) yoki

Sum(n) + Sum(n) - an => 2 * Sum(n) - an. (a )

Arifmetik progressiyaning birinchi elementi ma'lum bo'lgani uchun yig'indini topish uchun keyingi formulani ishlatsangiz bo'ladi:

Sum(n) = ((a1 + an) * n ) / 2.

Bu formulani (a ) formulaga qo'ysangiz

2 * Sum(n) - an = 2 * ((a1 + an) * n ) / 2 - an = (a1 + an) * n - an. (b )

Keling, endi an (oxirgi element)ni topaylik. an = a1 + (n - 1) * d formulasini ishlatsangiz

an = a1 + (n - 1) * d = 1 + (n - 1) * 2 = 1 + 2n - 2 = 2n - 1 => an = 2n - 1.

Va an uchun topilgan ifodani (b ) formulasiga qo'ysangiz

(a1 + an) * n - an = (a1 + 2 * n - 1) * n - (2 * n - 1) = 2 * n * n - 2 * n + 1 = 2 * n * (n - 1) + 1.

Xullas, javob 2 * n * (n - 1) + 1 bo'ldi.

Tushunarli bo'ldi degan umiddaman.
= [Dasturlash = Dasturlashga]

Omad!

@leetcodin