Как реализовать кратность?

140
11 апреля 2019, 11:30

Подскажите, как именно можно реализовать кратность?

Условие :

Даны два неубывающих массива x и y. Найти их пересечение, то есть неубывающий массив z, содержащий их общие элементы, причем кратность каждого элемента в массиве z равна минимуму его кратностей в массивах x и y.

    let x = [];
    for(let i = 1; i <= 10; i++)
{
x[i] = prompt("Введите элемент массива x");
 }
 function compareNumeric(a, b) 
{
  return a - b;
}
 x.sort(compareNumeric);
 alert("Массив х = " + x);
 let y = [];
for(let i = 1; i <= 10; i++)
{
 y[i] = prompt("Введите элемент массива y");
}
 y.sort(compareNumeric);
 alert("Массив у = " + y);

function count(s, c)
{
let sum = 0;
for (i = 0; i < s.length; i++)
{
    if (s[i] == c)
     sum ++
}
 return sum
}
    function Intersection(a, b) 
 {
    let z = [];
    for(let i = 0; i < b.length; i++)
    {
        if(b.includes(a[i]) && count(a, a[i]) < count(b, b[i]))
        {
             z.push(a.slice(i, i + count(a, a[i])));
        }
        else if (b.includes(a[i]) && count(b, b[i] < count(a, a[i])))
             z.push(b.slice(i, i + count(b, b[i])));
    }
     return z.sort(compareNumeric);
}
   alert ("Пересечение = " + Intersection(x, y));
Answer 1

C помощью indexof можно найти весь диапазон индексов одинаковых чисел.

Однако для сортированных массивов выгоднее использовать алгоритм, подобный слиянию в MergeSort. Код:

A = [2,3,3,4,5,5,5,7];
B = [1,3,3,4,4,5,5,6];
C= [];
indexA = 0;
indexB = 0;
while (indexA < A.length && indexB < B.length) {
     if (A[indexA] < B[indexB]) 
        indexA++
     else
        if (A[indexA] > B[indexB]) 
           indexB++
        else {
          C.push(A[indexA]);
          indexA++;
          indexB++;
       }
 }
 console.log(C);
 >>[ 3, 3, 4, 5, 5 ]
READ ALSO
Как лучше оформить код с событием во vue?

Как лучше оформить код с событием во vue?

Цель - показывать элемент "modal" при нажатии на h1, и закрывать его при нажатии на document

142
Как пройти PageSpeed Tools?

Как пройти PageSpeed Tools?

Кто мне может подсказать как улучшить показатели PageSpeedПроект маленький, по сути лендинг

145
Работа JS в vue js

Работа JS в vue js

Не работает js код, когда пытаюсь собрать его с помощью vueВсё отрисовывается корректно, но не запускается скрипт, не меняются выделенные цвета

150