06. Most frequent number


0

function solve (arr1) {
arr1.shift();
var mf = 1, 
    m = 0,  
    item;  
for (var i=0; i<arr1.length; i++)  
{  
        for (var j=i; j<arr1.length; j++)  
        {  
                if (arr1[i] == arr1[j])  
                 m += 1;  
                if (mf<m)  
                {  
                  mf=m;   
                  item = arr1[i];  
                }  
        }  
        m=0;  
}  
console.log(item + " (" +mf +" times) ") ;  
}

Някой има ли идея защо на първия нулев тест в БГкодер ми изкарва подобен резултат: 4В (В 5В timesВ )В и получавам 0/100 точки?




Отговори



0
Аз минавам нулевия тест и имам 0/100 точки :D

от dreadlocker (22 точки)


0
пробвай да си кънвъртваш стринговете към число   if (+arr1[i] == +arr1[j])  

от maelanka (0 точки)


0

function findMostFreqNum(value) {
    'use strict';
    var numbersCounted = {},
        counts = [],
        key,obj;

    function isBigger(firstNumber, secondNumber) {
        return firstNumber - secondNumber;
    }

    function countEqualNumbersInSortedArray(array, startIndex) {
        var counter = 1;
        if (array.length === 1) {
            if (startIndex === 0) {
                numbersCounted[array[0]] = 1;
                return numbersCounted;
            }
            throw new Error('Invalid start index!');
        }
        if (startIndex > array.length - 1) {
            return numbersCounted;
        }
        while (array[startIndex] === array[startIndex + 1]) {
            counter += 1;
            startIndex += 1;
        }
        numbersCounted[array[startIndex - counter + 1]] = counter;
        return countEqualNumbersInSortedArray(array, startIndex + 1);
    }
    value = value.sort(isBigger);
    obj = countEqualNumbersInSortedArray(value, 0);
    for (key in obj) {
        counts.push(obj[key]);
    }
    counts = counts.sort(isBigger);
    for (key in obj) {
        if (obj[key] === counts[counts.length - 1]) {
            return console.log(key + ' (' + (obj[key]) + ' times)');
        }
    }
}

решение за 100 точки




0

Здравейте,колеги,

100 часа го мислих тоя код и накрая го докарах,но уви. Само zero тест-а ми излиза. АКо може някой да даде съвет,ще съм благодарен. Ето кода:

function solve(args) {
    let elements = +args[0],
        counter = 1,
        num1,
        num2,
        repeatingNum,
        maxCounter = 0;

    for (i = 1; i < elements; i += 1) {

        if (counter > maxCounter) {
            maxCounter = counter;
            repeatingNum = num1;
            counter = 1;
        }
        num1 = +args[i];
        if (num1 === repeatingNum) {
            break;
        }
        for (j = i + 1; j < elements; j += 1) {
            num2 = +args[j]
            if (num1 == num2) {
                counter += 1;
            }

        }

    }
    console.log(repeatingNum + " " + "(" + maxCounter + " " + "times)");
}



0

В условията на тези задачи не са се справили добре.

важно е да разберем какви са ни входните данни!В този случай имаме масив в ,които първип ел. е големината  на масива с които ,ще работи и останалите ел. са масива.

Ето го моя код:

function solve(args) { let arr = args.map(Number); let n = arr[0]; arr.splice(0, 1); let count = 1; let maxCount = 1; let temp; let mostFreq; for (let i = 0; i < n; i += 1) { temp = arr[i]; for (let j = 0; j < n; j += 1) { if (temp === arr[j]) { count += 1; } } if (count - 1 > maxCount) { mostFreq = temp; maxCount = count - 1; count = 1; } else { count = 1; } } console.log(mostFreq + ' (' + maxCount + ' times)'); }

Това което правя в началото е взимам големината на масива и после премахвам първия ел. от входния масив!

Надявам се да съм помогнал! :)

ПС:използвайте http://pastebin.com/ като hyperlink или inser code snipet добра практика е ! :) :) :)




0
Изкопирах решението едно-към-едно и пейст в http://judge.telerikacademy.com/submission/20950 и продължава да ми дава 0 точки, някой има ли идея какъв може да е проблема? Вие получавате точки на това решение, така ли? 

от stavri88 (0 точки)


0
Здравейте, изглежда повечето задачи са преправяни от C# и първия елемент е дължината на масива, който трябва да се махне. В моето решение първо го сортирам, за да се подредят числата и само с 1 цикъл го обхождам. Ето и самия код

от BoyanTodorov (853 точки)