Assalomu alaykum, yordam.uz saytimizga xush kelibsiz.
Bu saytda o`zingizni qiziqtirgan savollarga javob olishingiz va o`z sohangiz bo`yicha savollarga javob berishingiz mumkin. Bizning Oilamizga a'zo bo`lganingiz uchun chuqur Minnatdorchilik bildiramiz !!!

algorithms: qatorlar xaqidagi masala

+3 ovoz
92 marta ko‘rilgan
so‘radi 29 dekabr, 16 abdujabbor (399 bal)
bitta 1 raqamidan iborat bo'gan qator berilgan, xar bir qadamda keyingi raqam yoziladi va wu raqamdan oldin kelgan qator o'zidan keyinga ulanadi ya'ni

1

1 2 1

1 2 1 3 1 2 1

1 2 1 3 1 2 1 4 1 2 1 3 1 2 1

va xokazo

n qatorda keladigan sonni ko'rsatish kerak:

1 <= n <= 2 ^ 32 - 1

memory limit va timeout larni yengish uchun nima qilgan bo'lardingiz, qatorni massivlarda qurish yoki sikllarda xisoblash timeout yoki memory limitga olib keladi.
izoh qoldirdi 29 dekabr, 16 Bilmasvoy (904 bal)
rekursiya bilan javobni to`g`ri ekranga chiqarvorsa bo`lmidimi? array ga saqlab o`tirmasdan?
izoh qoldirdi 29 dekabr, 16 abdujabbor (399 bal)
timeout ga tushib qoladiyov recursiondayam. agar iloji bo'sa source bering ili psevdokod?

1 ta javob

0 ovoz
javob berdi 30 dekabr, 16 Saidolim (3,566 bal)

Masalaning berilishi o`zi qizziq. Chunki natija geometrik progressiyada oshib ketadi.

Javada yozib ko`rdim. ishlatib ko`ringchi:

package numberwriting;

/**
 * @author Saidolim
 */
public class NumberWriting {

    public static void main(String[] args) {
        int n = 10;
        writeNext(n);
    }

    private static void writeNext(int n) {
        if (n == 1) {
            System.out.print(n);
        } else {
            writeNext(n - 1);
            System.out.print(n);
            writeNext(n - 1);
        }
    }
}

Nazariy tomondan hisoblasak, ekranga quyidagicha sonda natija chiqadi:

Mn =2n-1

Natijani ekranga chiqarishdan ko`ra, uni ekranda ko`rsatib berish ko`proq vaqt oladi. File'ga saqlab ko`ring, balki tezroq ishlar.

izoh qoldirdi 30 dekabr, 16 abdujabbor (399 bal)
qaysidur ma'noda algoritmingiz tog'ri, no kotta qiymatlarda timeoutda qoladi.  masalani O(1) time/memory yechimi bor.
izoh qoldirdi 04 yanvar, 17 abdujabbor (399 bal)
Saidolim aka mana bu masalani manimcha eng oson yechimi bo'lsa kerak:

int(math.log2(n&(-n))+1)

Assalomu alaykum, yordam.uz saytimizga xush kelibsiz.

Bu saytda o`zingizni qiziqtirgan savollarga javob olishingiz va o`z sohangiz bo`yicha savollarga javob berishingiz mumkin.

Bizning Oilamizga a'zo bo`lganingiz uchun chuqur Minnatdorchilik bildiramiz !!!

Telegram kanal YordamUzRss

...