Как проверить массив на наличие дублей: различия между версиями
Материал из Поле цифровой дидактики
Patarakin (обсуждение | вклад) |
Patarakin (обсуждение | вклад) |
||
| Строка 14: | Строка 14: | ||
=== [[JavaScript]] === | === [[JavaScript]] === | ||
==== Вариант 1 ==== | ==== Вариант 1 - вложенный цикл ==== | ||
<syntaxhighlight lang="javascript" start="1"> | <syntaxhighlight lang="javascript" start="1"> | ||
const hasDuplicates = function (num) { | const hasDuplicates = function (num) { | ||
| Строка 34: | Строка 34: | ||
const nums = [1, 2, 3, 4, 5, 5]; | const nums = [1, 2, 3, 4, 5, 5]; | ||
hasDuplicates(nums);//true | hasDuplicates(nums);//true | ||
</syntaxhighlight> | |||
==== Вариант 2 - бинарный поиск ==== | |||
<syntaxhighlight lang="javascript" > | |||
const nums = [1, 2, 3, 4, 5]; | |||
const searchFor = function (items, num) { | |||
} | |||
const hasDuplicates = function (nums) { | |||
for (let num of nums) { | |||
if (searchFor(nums, num)) { | |||
return true; | |||
} | |||
} | |||
return false; | |||
} | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Версия от 16:19, 1 декабря 2022
| Описание | Как проверить массив на наличие дублей? |
|---|---|
| Область знаний | Информатика |
| Область использования (ISTE) | Computational Thinker |
| Возрастная категория | 10
|
| Поясняющее видео | |
| Близкие рецепту понятия | Сортировка |
| Среды и средства для приготовления рецепта: | Snap!, JavaScript |
Вариант 1 - вложенный цикл
const hasDuplicates = function (num) {
//loop the list, our O(n) op
for (let i = 0; i < nums.length; i++) {
const thisNum = nums[i];
//loop the list again, the O(n^2) op
for (let j = 0; j < nums.length; j++) {
//make sure we're not checking same number
if (j !== i) {
const otherNum = nums[j];
//if there's an equal value, return
if (otherNum === thisNum) return true;
}
}
}
return false;
}
const nums = [1, 2, 3, 4, 5, 5];
hasDuplicates(nums);//true
Вариант 2 - бинарный поиск
const nums = [1, 2, 3, 4, 5];
const searchFor = function (items, num) {
}
const hasDuplicates = function (nums) {
for (let num of nums) {
if (searchFor(nums, num)) {
return true;
}
}
return false;
}
