Еще одно воскресенье, и еще одна неделя прошла! Я надеюсь, что все вы, ребята, были продуктивны в эти выходные и кое-что сделали. Для сегодняшней проблемы с алгоритмом я собираюсь написать функцию, которая в основном принимает массив и возвращает true, если есть дубликаты, и false, если их нет. вот пример:

Input: [1,2,3,1]
Output: true
Input: [1,2,3,4]
Output: false
Input: [1,1,1,3,3,4,3,2,4,2]
Output: true

Итак, когда я начал решать эту проблему, я отсортировал входной массив и просто решил, что если число появится более одного раза, функция вернет true, как только я начну его перебирать. Однако некоторые пограничные случаи сбивали меня с толку, например, пустой массив или одиночный или двойной ввод. Тогда я решил добавить каждую запись введенного массива в хеш-таблицу, которая будет использоваться для сравнения с другими записями, и если какие-то записи совпадут, то бац! у нас есть дубликат. Вот как я реализовал это в коде JavaScript:

var containsDuplicate = function(nums) {
    let hashT = {};
    for (let i = 0; i < nums.length; i++) {
        if (hashT[nums[i]] == nums[i])
            return true
        hashT[nums[i]] = nums[i];
    }
    return false;
};

Я понимаю, что использование хэш-таблиц настолько эффективно, что часто, когда мне приходится решать такого рода проблемы, когда мне нужно сравнить два разных индекса массива, хэш-таблица является идеальной структурой данных для использования. Вы согласны?

В любом случае, если вы, ребята, узнали что-то интересное или думаете, что решение довольно крутое, нажмите кнопку аплодисментов! Если у вас есть лучшие способы решить эту проблему, не стесняйтесь оставить ответ или связаться со мной, спасибо!