JavaScript Fundamentals - 07. Arrays Homework


0


Пускам тема за домашното с цел всичко около него да се дискутира тук



Отговори



1
Не виждам условията на задачите. Само аз ли не ги виждам, или наистина ги няма ?

от Boray (666 точки)


0


0
:) там забравих да проверя.

от Boray (666 точки)


2
Как си четете входа на втора задача?

от boyan.slavov (20 точки)


0

Честно казано аз имам ужасни проблеми с тази втора задача.
Като го дебъгвам всичко е окей.


Аз стигнах до тук. Проблема е при еднаквост. Не излиза  =, а >. Някой ако може да помогне ^^

function Compare(args){ var str1=args[0]; var str2=args[1]; var answer= str1.localeCompare(str2); if(answer===1){ console.log('<'); } else if(answer===-1){ console.log('>'); } else { console.log('='); } }



1
С .length не ти върви, защото вероятно не го ползваш както трябва. Входа се получава по следния начин: [ 'hello\nhalo' ]. Това нещо вече не мога да го сплитна по начините, по които се пробвах. А ако кажеш args[0].length, вади 10.

от boyan.slavov (20 точки)



0

input задача 7 е в формат [ '13', '4', '1', '1', '4', '2', '3', '4', '4', '1', '2', '4', '9', '3' ]

на предходните [ '10\n36\n10\n1\n34\n28\n38\n31\n27\n30\n20' ]

ЕДИТ. Инпут-а на НУЛЕВИЯТ тест на задача 7 е в горния формат, на номалните тестове инпут е както на предходните тестове.

Ако някой се чуди защо има нулев и след това само нули.

Някой успял ли е да се пребори с мемори лимита на Prime ? ( ехм освен Дончо ) . Като го правихме това на C# проблема беше в бързината, докато там проблема с паметта се решаваше с bitarray/ byte[]. Или може бе проблема е по-скоро "концептуален" т.е. въобще всъщност не би трябвало да пълним масив ?

Пробвах рекурсивно, пробвах и с while, но това няма особен ефект. На една от предходните задачи НЕ използване на for цикъл за принтиране ми оправи паметта ( принтирах с .join ). Може би е от това ? 


от todorovh (2055 точки)


0
А който не е взел CSS  може ли да ходи на изпит по JS?


2
Би трябвало да те допуснат ако предадеш всички домашни.

от amens (110 точки)


2
Може ли някой да напише как извикава функцията solve с тези изисквания: 
  • On the first line you will receive the number N
  • On the next N lines the numbers of the array will be given

Благодаря предварително !!!


от yanko.nikolov (133 точки)


0

solve('13\n4\n1\n1\n4\n2\n3\n4\n4\n1\n2\n4\n9\n3');

Първото число е "N", а след това са "N lines"


от p_a_v_el (454 точки)

0
Т.е. числото N показва колко елемента е масива след това, така ли?



2

За "Prime numbers" търсете алгоритъм без масив. 

Принтирането на масив с "join()" спестява памет.

10. Prime numbers


от Boray (666 точки)


0
Мерси много :-)

от jorosoft (945 точки)


0
Някои да даде насоки за Binary Search , Selection Sort и Maximal increasing sequence. Не изкарвам макс и съм пробвал доста варианти на binary и selection-a, ако може дайте hint за да знам къде какво да променям.

от composer2 (307 точки)


4

При Selection Sort решаващият фактор е този - не бива да се consolе.log-ват елементите на масива един по един по време на въртене на цикъла, a да се върнат след края на цикъла.  

За да се принтират ред по ред, се ползва .join('\n'):

return arr.join('\n');


от natla (260 точки)

2

Здравей, аз ги реших след доста мъки като основен проблем ми беше прочитането на входа. След това алгоритъма за решение е същия като при задачите от Advanced C#.

Ето решение за binary search: http://pastebin.com/GK3XtEYJ

Тук всички входни данни ги прочитам в масив и после с array.shift() и array.pop(); махам първото и последното число и си прилагам алгоритъма.

Дано съм ти бил от полза.


от Alexander.N (105 точки)



1

Привет, някой може ли да ми помогне с четенето на входа на втора задача.

Кода който имам приемам вход в следния формат: array1\narray2 .

Пробвах и като масив да чета входа и като 2 масива и като какво ли не, но все не става.

При мен става, но бг кодер дава Runtime на .split метода.

Ето моя код

Според мен би било добре, ако някой от трейнърите каже как точно се подава входа.

Като 1 стринг, като масив от 1 стринг, като масив от няколко стринга или как. Не мисля, че някой е споменавал досега, а гледам, че и доста колеги имат този проблем.


от ViktorBarzin (210 точки)


3

аз ги чета по следният начин и така сработи:

var str = args[0].split('\n');


от monsterEnergy (954 точки)

1

100/100 

Благодаря много !


от ViktorBarzin (210 точки)



2

Prime numbers задача 10, който има затруднения да изкара сто точки да пробва следното преди да погледне решението. Прилагате алгоритъм за изваждане на всички prime но вместо да почнете от най- малкото  започвате от най-голямото възможно спрямо входа. На първото съвпадение break и 100/100. С обърнат forr

Ето и решението:Prime Numbers

Елементарно Wotsan :)


от composer2 (307 точки)


2
Решението е хитро, но това не е sieve :(

от todorovh (2055 точки)

0

Защо на 4. Maximal increasing sequence ми дава 0/100 след като всичко си работи коректно?

function solve(args) {
    var arr = args[0].split('\n'),
        count = 1,
        big = 2,
        i,
        n;
    n = arr.shift();
    len = +n;
    for (i = 0; i < len; i++) {
        arr[i] = arr[i] * 1;
    }
    for (i = 0; i < len; i++) {
        if (arr[i] < arr[i + 1] && arr[i + 1] === (arr[i] + 1)) {
            count += 1;
            if (count >= big) {
                big = count;
            }
        } else {
            count = 1;

        }
    }
    console.log(big);
}

solve(['10\n1\n2\n7\n5\n3\n1\n1\n4\n1\n2']);
solve(['13\n1\n1\n1\n1\n2\n3\n5\n1\n1\n2\n4\n9\n3']);
solve(['8\n7\n3\n2\n3\n4\n2\n2\n4']);






1
Бихте ли обяснили какво означава lexicographically smaller? Не съм била на курса C# и сега ми е много трудно да разбера какво се иска в задачите?



3

Ами да ти кажа честно решението на задачата няма нищо общо с условието или тестовете са много лесни и минава за сто точки или нещо друго, но относно въпроса ти : ако едната дума е по дълга от другата тя е по-надолу в редицата на подредбата => късата по нагоре. Ако са равни по дължина трябва да се сравняват буква по буква като  предварително са toLowerCase  защото самото сравнение ги извиква като числа от unicode ascii таблицата и малките букви  са с по-голяма стойност и т.н. (ако го има в условието тъй като го няма не го взимаме под внимание). Това е общо взето, но пак казвам ако си напишеш задачата по тази логика няма да ти даде 100/100. Ето ти и решението, което за мен е пълен абсурд и е нелогично, но дава 100/100

Lexicographically comparison -100/100

Lexicographically comparison -80/100 ако следваме логиката на разума, но не и на бгкодер


от composer2 (307 точки)

1
Значи ои азбучен ред, като в речник  "а" е най малката а " z" е най голямата. 

от dushka.dragoeva (1324 точки)


0

Моля за помощ относно 10 задача - Prime Numbers.

Решението ми е следното: Prime Numbers

Като го тествам работи, но в bgcoder изкарва memory limit.




1
Пробвай отзад-напред. Ако се затрудниш, виж моето решение.
EDIT: Няма нужда да създаваш масив, заради това имаш memory limit.

от Ilian_Iliev_2 (1043 точки)