Подскажите, как именно можно реализовать кратность?
Условие :
Даны два неубывающих массива 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));
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 ]
Цель - показывать элемент "modal" при нажатии на h1, и закрывать его при нажатии на document
Кто мне может подсказать как улучшить показатели PageSpeedПроект маленький, по сути лендинг
Не работает js код, когда пытаюсь собрать его с помощью vueВсё отрисовывается корректно, но не запускается скрипт, не меняются выделенные цвета