Публикации по теме 'datastrucutre'


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

Глубокое погружение в проблему связанного списка палиндромов на LeetCode.
Глубокое погружение в проблему связанного списка палиндромов на LeetCode. Введение Задача «Связанный список палиндромов» — это классическая задача по программированию, которая проверяет вашу способность манипулировать связанными списками и проверять наличие палиндромов. В этой статье мы обсудим различные решения этой проблемы, но наше внимание будет сосредоточено на использовании рекурсивного подхода для ее решения. Обзор проблемы Задача представляет нам односвязный список и..

Как работает копирование при записи в Swift Fast AF
Swift предоставляет мощный инструмент для оптимизации производительности и сокращения использования памяти, называемый копированием при записи. Этот метод позволяет совместно использовать несколько копий значения до тех пор, пока одну из копий не потребуется изменить, после чего делается копия, чтобы избежать изменения исходного значения. Одним из распространенных типов в Swift, использующих копирование при записи, является массив. Когда массив присваивается новой переменной или..

LeetCode: 1. Javascript-решение с двумя суммами
Учитывая массив целых чисел и целое число, верните индексы двух чисел так, чтобы они складывались. Вы можете предположить, что каждый вход будет иметь ровно одно решение , и вы не можете использовать один и тот же элемент дважды. Вы можете вернуть ответ в любом порядке. Пример 1: Input: nums = [2,7,11,15], target = 9 Output: [0,1] Explanation: Because nums[0] + nums[1] == 9, we return [0, 1]. Пример 2: Input: nums = [3,2,4], target = 6 output: [1,2] Пример 3: Input:..

Реализация стекового двухстороннего быстрого автофокуса
Как разработчик, вы, возможно, сталкивались с концепцией стека — структуры данных, которая следует принципу «последний пришел — первый ушел» (LIFO). Стек позволяет помещать в него элементы и извлекать их в порядке, обратном их добавлению. Это может быть полезно в различных сценариях, таких как реализация функции отмены или ведение истории посещенных страниц в веб-браузере. Существует несколько способов создания стека в Swift, каждый из которых имеет свои преимущества и недостатки. В этом..

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

Число является простым или нет
Подход грубой силы состоит в том, чтобы разделить n на каждое число от 2 до n-1, и если оно делится, то n является «не простым», в противном случае — «простым». Однако после √ n никакое число не делит n. Следовательно, эффективно делить n на числа от 2 до √ n, что уменьшает количество операций. Алгоритм: Пусть n — целое число. Шаг 1 . Инициализируйте переменную c = 2 и s = √n. Шаг 2 . Если c‹=s, перейдите к шагу 3, иначе — к шагу 5. Шаг 3 . Если n%c == 0, прервите работу..