Подсчет и сохранение количества в массиве - PullRequest
0 голосов
/ 25 марта 2019

У меня есть массив чисел b [2, 1, 1, 1, 2, 0]. Цель состоит в том, чтобы найти режим массива. Однако прежде чем я смогу это сделать, мне нужно создать промежуточный массив, в котором будет храниться счетчик каждого числа. Для этого мне нужно использовать значение элемента из входного массива в качестве номера индекса для промежуточного массива. Первая часть моего заявления if работает. У меня проблема с моим кодом в операторе else, который используется для подсчета всех чисел, которые не равны 0. Если я печатаю (newArr), это должно быть печать массива, который равен [1,3,2], но что в настоящее время печать составляет [1,4,5].

 import { print } from "";

 export let main = async () => {

    let input = [2, 1, 1, 1, 2, 0];
    print(input);

 export let mode = (b: number[]): number => {
    let newArr: number[] = [];
    let current = 0;
    let count = 0;
    }
    for (let i = 0; i < b.length; i++) {
        if (b[i] === 0) {    
            newArr[b[i]] = count + 1;
            count = newArr[b[i]];
        } else {
            newArr[a[i]] = current + 1;
            current = newArr[a[i]];
        }
    }
    print(newArr)

Если массив b [2,1,1,2,1,0], тогда 1 должен быть возвращен в качестве режима, и если мы напечатали созданный нами массив, он должен напечатать newArr [1,3,2], потому что элемент 0 имеет 1 вхождение, элемент 1 имеет 3 вхождения, а элемент 2 имеет 2 вхождения. Идея состоит в том, чтобы перейти от 0 в качестве элемента нашего входного массива к 0, являющемуся индексом в нашем промежуточном массиве. Итак, наконец, мы видим, что является нашим максимальным числом вхождений (или максимальным элементом в нашем промежуточном массиве), которое равно 3 в индексе 1, поэтому режим равен 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...