Публикации по теме 'algorithms'
Алгоритм быстрой сортировки в Python
Всем привет, добро пожаловать на programminginpython.com . Здесь я покажу вам, как реализовать алгоритм быстрой сортировки в Python. В предыдущих статьях я рассмотрел Сортировку вставкой , Сортировку слиянием , Сортировку по выбору и Сортировку пузырьков . Теперь давайте научимся реализовывать еще один алгоритм сортировки - алгоритм быстрой сортировки.
Quicksort - это алгоритм сортировки на месте, что означает, что он не требует какого-либо дополнительного / временного списка..
Самая длинная палиндромная подстрока🖌
Вопрос
Получив строку s , вернуть самую длинную палиндромную подстроку в s .
Пример 1:
Input: s = "babad"
Output: "bab"
Explanation: "aba" is also a valid answer.
Пример 2:
Input: s = "cbbd"
Output: "bb"
Ограничения:
1 <= s.length <= 1000 s состоят только из цифр и английских букв.
Java-решение
Два разных решения с двумя разными временными сложностями
O(n³) Для строки n (где n – размер строки) приведенный ниже код сгенерирует/проверит..
День 5: Задача «Самая длинная подстрока без повторяющихся символов»
День 5: Задача «Самая длинная подстрока без повторяющихся символов»
Проблема:
Для заданной строки найдите длину самой длинной подстроки без повторяющихся символов.
Пример:
Input: "pwwkew"
Output: 3
Explanation: The answer is "wke" , with the length of 3.
Мое решение:
class Solution(object):
def lengthOfLongestSubstring(self, s):
if len(s) <= 1:
return len(s);
arr = [1 for i in range(len(s))]
max_val = 0
for i in..
Введение в бинарный поиск
Предположим, вы ищете человека по имени «Винсент» в одном из этих больших телефонных справочников. Эти книги могут иметь сотни страниц, и было бы утомительно искать каждую страницу с самого начала линейным способом, пока вы не найдете этого человека. К счастью, книга отсортирована по алфавиту, так что мы можем использовать хак.
Представьте, что вы открываете книгу посередине. Вы смотрите на страницу и видите имена, начинающиеся с «S». Зная, что «V» стоит после «S», вы разрываете книгу..
Серия упражнений HackerRank: новогодний хаос
Ссылка на проблему: здесь
В этой задаче нам дан массив, в котором каждый элемент на позиции обозначает, сколько людей он подкупил, чтобы они пришли на текущую позицию.
Например: в q = [1, 4, 2, 3, 5], Мы можем сказать, что 1 и 5 никого не подкупили, следовательно, они находятся в исходном положении. Кроме того, 4 подкупил 2 и 3, чтобы добраться до позиции 2.
Также есть условие, что ни один человек не может дать взятку более чем 2 людям.
Чтобы решить эту проблему, нам просто нужно..
Алгоритм возврата: основы
Введение
Возврат — это концепция, в которой сначала мы выбираем один путь и пытаемся найти ответ, если мы не находим ответ, возвращаемся и пробуем другой путь. Попробуем разобраться на простом примере.
Есть актер, который забыл свой телефон в любом из этих домов (A, B, C). Теперь ему нужно найти свой телефон, поэтому он начинает с дома A и проверяет, доступен ли его телефон. Он не нашел свой телефон в доме А, поэтому он возвращается (возвращается туда, откуда начал). Теперь он..
Содержит дубликаты 🌳
Вопрос
Дан целочисленный массив nums , вернуть true , если какое-либо значение встречается в массиве не менее двух раз , и вернуть false , если каждый элемент различен.
Пример 1:
Input: nums = [1,2,3,1]
Output: true
Пример 2:
Input: nums = [1,2,3,4]
Output: false
Пример 3:
Input: nums = [1,1,1,3,3,4,3,2,4,2]
Output: true
Ограничения:
1 <= nums.length <= 105 -109 <= nums[i] <= 109
Решение
Временная сложность O(n²)..
Новые материалы
12 сайтов с искусственным интеллектом, которые поразят вас
Приготовьтесь поразить воображение
Сегодня существует несколько веб-сайтов, использующих искусственный интеллект (ИИ). От индивидуальных рекомендаций по новостям до более умных поисковых..
Скрытый технический долг в системах машинного обучения [NeurIPS 2015]
Что такое технический долг?
Технический долг — это метафора, введенная Уордом Каннингемом в 1992 году, чтобы объяснить долгосрочные затраты, связанные с быстрым продвижением в разработке..
Алгоритм быстрой сортировки в Python
Всем привет, добро пожаловать на programminginpython.com . Здесь я покажу вам, как реализовать алгоритм быстрой сортировки в Python. В предыдущих статьях я рассмотрел Сортировку вставкой ,..
Как использовать манипулирование объектами в JavaScript
Объекты являются важным строительным блоком JavaScript. Они позволяют группировать свойства и методы вместе.
Объект представляет собой набор свойств. Свойства идентифицируются с..
Разработка игр с помощью Godot Engine: мощный инструмент с открытым исходным кодом
Разработка игр — творческий и сложный процесс, требующий множества навыков и инструментов. Одним из наиболее важных инструментов является игровой движок, который представляет собой программную..
От XML к аннотациям: переход к современной конфигурации Spring
Введение
Фреймворк Spring претерпел значительную эволюцию с момента своего создания. Одним из заметных изменений стал переход от конфигураций на основе XML к конфигурациям, управляемым..
Я люблю Руби!
Я люблю Руби! Мне это нравится по той же причине, по которой мне нравится программировать на Python. Он настолько интуитивно понятен, а встроенные методы упрощают решение проблем. Если вы..