Как проверить массив на наличие дублей: различия между версиями

Материал из Поле цифровой дидактики
Нет описания правки
Строка 7: Строка 7:
|Environment=Snap!, JavaScript
|Environment=Snap!, JavaScript
}}
}}
=== Описание проблемы ===
У нас есть  [[массив]]  элементов и мы хотим узнать, встречаются ли в нём повторяющиеся элементы


===  [[Snap!]] ===
===  [[Snap!]] ===

Версия от 18:23, 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;
}