317 эффективных решений проблем HackerRank
- 10 дней статистики
- 30 дней кода
- Алгоритмы
- Взлом интервью по программированию
- Структуры данных
- Общее программирование
- Выполнение
- Ява
- SQL
Решения написаны с использованием Java 8.
Решения SQL кодируются с использованием MySQL
10 дней статистики
День | Испытание | Очки | Решение |
---|
0 | Среднее, медиана и мода | 30 | Решение.java |
0 | Взвешенное среднее | 30 | Решение.java |
1 | Квартили | 30 | Решение.java |
1 | Межквартильный размах | 30 | Решение.java |
1 | Стандартное отклонение | 30 | Решение.java |
2 | Основная вероятность | 10 | Решение |
2 | Больше кубиков | 10 | Решение |
2 | Вероятность сложного события | 10 | Решение |
3 | Условная вероятность | 10 | Решение |
3 | Карты одной масти | 10 | Решение |
3 | Рисование мрамора | 10 | Решение |
4 | Биномиальное распределение I | 30 | Решение.java |
4 | Биномиальное распределение II | 30 | Решение.java |
4 | Геометрическое распределение I | 30 | Решение.java |
4 | Геометрическое распределение II | 30 | Решение.java |
5 | Распределение Пуассона I | 30 | Решение.java |
5 | Распределение Пуассона II | 30 | Решение.java |
5 | Нормальное распределение I | 30 | Решение.java |
5 | Нормальное распределение II | 30 | Решение.java |
6 | Центральная предельная теорема I | 30 | Решение.java |
6 | Центральная предельная теорема II. | 30 | Решение.java |
6 | Центральная предельная теорема III | 30 | Решение.java |
7 | Коэффициент корреляции Пирсона I | 30 | Решение.java |
7 | Коэффициент ранговой корреляции Спирмена | 30 | Решение.java |
8 | Линия регрессии наименьших квадратов | 30 | Решение.java |
8 | Коэффициент корреляции Пирсона II | 30 | Решение |
9 | Множественная линейная регрессия | 30 | Решение.java |
30 дней кода
День | Испытание | Очки | Решение |
---|
0 | Привет, мир | 30 | Решение.java |
1 | Типы данных | 30 | Решение.java |
2 | Операторы | 30 | Решение.java |
3 | Введение в условные операторы | 30 | Решение.java |
4 | Класс против экземпляра | 30 | Решение.java |
5 | Петли | 30 | Решение.java |
6 | Давайте рассмотрим | 30 | Решение.java |
7 | Массивы | 30 | Решение.java |
8 | Словари и карты | 30 | Решение.java |
9 | Рекурсия | 30 | Решение.java |
10 | Двоичные числа | 30 | Решение.java |
11 | 2D-массивы | 30 | Решение.java |
12 | Наследование | 30 | Решение.java |
13 | Абстрактные классы | 30 | Решение.java |
14 | Объем | 30 | Решение.java |
15 | Связанный список | 30 | Решение.java |
16 | Исключения — строка в целое число | 30 | Решение.java |
17 | Больше исключений | 30 | Решение.java |
18 | Очереди и стеки | 30 | Решение.java |
19 | Интерфейсы | 30 | Решение.java |
20 | Сортировка | 30 | Решение.java |
21 | Дженерики | 30 | Решение.java |
22 | Двоичные деревья поиска | 30 | Решение.java |
23 | Обход уровня BST | 30 | Решение.java |
24 | Больше связанных списков | 30 | Решение.java |
25 | Время работы и сложность | 30 | Решение.java |
26 | Вложенная логика | 30 | Решение.java |
27 | Тестирование | 30 | Решение.java |
Алгоритмы
Субдомен | Испытание | Очки | Решение |
---|
Сортировка | Быстрая сортировка 1 — Раздел | 10 | Решение.java |
Сортировка | Кекуок Марка | 15 | Решение.java |
Сортировка | Минимальная абсолютная разница в массиве | 15 | Решение.java |
Сортировка | Баланс Удачи | 20 | Решение.java |
Сортировка | Сортировка вставками. Часть 1. | 30 | Решение.java |
Сортировка | Сортировка вставками. Часть 2. | 30 | Решение.java |
Сортировка | Корректность и инвариант цикла | 30 | Решение.java |
Сортировка | Время работы алгоритмов | 30 | Решение.java |
Сортировка | Быстрая сортировка 2 — Сортировка | 30 | Решение.java |
Сортировка | Подсчет сортировки 1 | 30 | Решение.java |
Сортировка | Подсчет сортировки 2 | 30 | Решение.java |
Сортировка | Счетная сортировка 3 | 30 | Решение.java |
Сортировка | Введение в обучающие задачи | 30 | Решение.java |
Сортировка | Быстрая сортировка на месте | 35 | Решение.java |
Сортировка | Время выполнения быстрой сортировки | 35 | Решение.java |
Сортировка | Полная счетная сортировка | 40 | Решение.java |
Поиск | Кафе-мороженое | 30 | Решение.java |
Поиск | Связанные ячейки в сетке | 50 | Решение.java |
Жадный | Сетка вызов | 20 | Решение.java |
Жадный | Максимальный периметр треугольника | 20 | Решение.java |
Жадный | Красивые пары | 30 | Решение.java |
Теория графов | Поиск в ширину — кратчайший охват | 55 | Решение.java |
Струны | Суперуменьшенная строка | 10 | Решение.java |
Струны | ВерблюжийЧехол | 15 | Решение.java |
Струны | Два персонажа | 15 | Решение.java |
Струны | Шифр Цезаря | 15 | Решение.java |
Струны | Исследование Марса | 15 | Решение.java |
Струны | Взвешенные однородные струны | 20 | Решение.java |
Струны | Драгоценные камни | 20 | Решение.java |
Струны | Альтернативные персонажи | 20 | Решение.java |
Струны | Красивая двоичная строка | 20 | Решение.java |
Струны | Тайна любовного письма | 20 | Решение.java |
Струны | Струнная конструкция | 25 | Решение.java |
Динамическое программирование | Проблема размена монет | 60 | Решение.java |
Битовые манипуляции | Одинокое целое число | 20 | Решение.java |
Битовые манипуляции | Битовые манипуляции: одинокое целое число | 20 | Решение.java |
Битовые манипуляции | Сумма против XOR | 25 | Решение.java |
Битовые манипуляции | Максимизация XOR | 30 | Решение.java |
Битовые манипуляции | Санса и XOR | 30 | Решение.java |
Битовые манипуляции | Счетная игра | 30 | Решение.java |
Взлом интервью по программированию
Тема | Испытание | Очки | Решение |
---|
Техники/Концепции | Временная сложность: примитивность | 15 | Решение.java |
Техники/Концепции | Рекурсия: числа Фибоначчи | 20 | Решение.java |
Техники/Концепции | Рекурсия: лестница Дэвиса | 30 | Решение.java |
Техники/Концепции | ДП: Смена монет | 30 | Решение.java |
Техники/Концепции | Битовые манипуляции: одинокое целое число | 60 | Решение.java |
Структуры данных | Массивы: вращение влево | 20 | Решение.java |
Структуры данных | Строки: создание анаграмм | 25 | Решение.java |
Структуры данных | Хэш-таблицы: записка о выкупе | 25 | Решение.java |
Структуры данных | Связанные списки: обнаружение цикла | 25 | Решение.java |
Структуры данных | Стеки: сбалансированные скобки | 30 | Решение.java |
Структуры данных | Очереди: история двух стопок | 30 | Решение.java |
Структуры данных | Деревья: это двоичное дерево поиска? | 30 | Решение.java |
Структуры данных | Кучи: найдите скользящую медиану | 50 | Решение.java |
Структуры данных | Пробует: Контакты | 50 | Решение.java |
Алгоритмы | Сортировка: пузырьковая сортировка | 30 | Решение.java |
Алгоритмы | Сортировка: Компаратор | 35 | Решение.java |
Алгоритмы | Сортировка слиянием: подсчет инверсий | 35 | Решение.java |
Алгоритмы | Бинарный поиск: кафе-мороженое | 45 | Решение.java |
Алгоритмы | DFS: подключенная ячейка в сетке | 45 | Решение.java |
Алгоритмы | BFS: кратчайший охват на графике | 45 | Решение.java |
Структуры данных
Субдомен | Испытание | Очки | Решение |
---|
Массивы | Массивы — ДС | 10 | Решение.java |
Массивы | 2D-массив – DS | 15 | Решение.java |
Массивы | Динамический массив | 15 | Решение.java |
Массивы | Левое вращение | 20 | Решение.java |
Массивы | Разреженные массивы | 25 | Решение.java |
Массивы | Алгоритмическое раздавление | 60 | Решение.java |
Стеки | Максимальный элемент | 20 | Решение.java |
Стеки | Сбалансированные скобки | 25 | Решение.java |
Деревья | Дерево: обход предзаказа | 10 | Решение.java |
Деревья | Дерево: обход по порядку | 10 | Решение.java |
Деревья | Дерево: обход постордеров | 10 | Решение.java |
Деревья | Дерево: высота двоичного дерева | 10 | Решение.java |
Деревья | Дерево: обход порядка уровней | 20 | Решение.java |
Деревья | Дерево: расшифровка Хаффмана | 20 | Решение.java |
Деревья | Двоичное дерево поиска: вставка | 20 | Решение.java |
Деревья | Дерево двоичного поиска: самый низкий общий предок | 30 | Решение.java |
Деревья | Это двоичное дерево поиска? | 30 | Решение.java |
Деревья | Поменять узлы [Алгоритм] | 40 | Решение.java |
Деревья | Дерево Квадрат-Десять | 60 | Решение.java |
Связанный список | Распечатайте элементы связанного списка | 5 | Решение.java |
Связанный список | Вставить узел в начало связанного списка | 5 | Решение.java |
Связанный список | Вставьте узел в хвост связанного списка | 5 | Решение.java |
Связанный список | Вставить узел в определенную позицию в связанном списке | 5 | Решение.java |
Связанный список | Удалить узел | 5 | Решение.java |
Связанный список | Печать в обратном порядке | 5 | Решение.java |
Связанный список | Реверс связанного списка | 5 | Решение.java |
Связанный список | Сравните два связанных списка | 5 | Решение.java |
Связанный список | Объединить два отсортированных связанных списка | 5 | Решение.java |
Связанный список | Получить значение узла | 5 | Решение.java |
Связанный список | Удаление узлов с повторяющимися значениями из отсортированного связанного списка | 5 | Решение.java |
Связанный список | Обнаружение цикла | 5 | Решение.java |
Связанный список | Найти точку слияния двух списков | 5 | Решение.java |
Связанный список | Вставка узла в отсортированный двусвязный список | 5 | Решение.java |
Связанный список | Реверс двусвязного списка | 5 | Решение.java |
Пытается | Контакты | 40 | Решение.java |
Очереди | Очередь с использованием двух стеков | 30 | Решение.java |
Кучи | Найдите действующую медиану | 50 | Решение.java |
Множественный выбор | Структуры данных MCQ 1 | 5 | Решение |
Множественный выбор | Структуры данных MCQ 2 | 5 | Решение |
Множественный выбор | Структуры данных MCQ 3 | 5 | Решение |
Общее программирование
Субдомен | Испытание | Очки | Решение |
---|
Базовое программирование | Реши меня первым | 1 | Решение.java |
Базовое программирование | Лестница | 10 | Решение.java |
Базовое программирование | Плюс Минус | 10 | Решение.java |
Базовое программирование | Диагональная разница | 10 | Решение.java |
Базовое программирование | Очень большая сумма | 10 | Решение.java |
Базовое программирование | Простая сумма массива | 10 | Решение.java |
Базовое программирование | Сравните тройни | 10 | Решение.java |
Базовое программирование | Делимые суммы пар | 10 | Решение.java |
Базовое программирование | Кенгуру | 10 | Решение.java |
Базовое программирование | Книга для рисования | 10 | Решение.java |
Базовое программирование | Свечи для торта ко дню рождения | 10 | Решение.java |
Базовое программирование | Приятного аппетита | 10 | Решение.java |
Базовое программирование | Торговец носками | 10 | Решение.java |
Базовое программирование | Яблоко и апельсин | 10 | Решение.java |
Базовое программирование | Между двумя сетами | 10 | Решение.java |
Базовое программирование | Мини-макс сумма | 10 | Решение.java |
Базовое программирование | Оценка студентов | 10 | Решение.java |
Базовое программирование | Бить рекорды | 10 | Решение.java |
Базовое программирование | Перелетные птицы | 10 | Решение.java |
Базовое программирование | Шоколад на День Рождения | 10 | Решение.java |
Базовое программирование | Преобразование времени | 15 | Решение.java |
Базовое программирование | Библиотека штрафа | 15 | Решение.java |
Базовое программирование | Спасите пленника! | 15 | Решение.java |
Базовое программирование | Прыгая по облакам - еще раз | 15 | Решение.java |
Базовое программирование | Считая долины | 15 | Решение.java |
Базовое программирование | Вирусная реклама | 15 | Решение.java |
Базовое программирование | Прекрасные дни в кино | 15 | Решение.java |
Базовое программирование | Магазин электроники | 15 | Решение.java |
Базовое программирование | Кошки и мышь | 15 | Решение.java |
Базовое программирование | Гонка с препятствиями | 15 | Решение.java |
Базовое программирование | Утопическое дерево | 20 | Решение.java |
Базовое программирование | Круговое вращение массива | 20 | Решение.java |
Базовое программирование | Шерлок и Квадраты | 20 | Решение.java |
Базовое программирование | Злой профессор | 20 | Решение.java |
Базовое программирование | Сверхдлинные факториалы | 20 | Решение.java |
Базовое программирование | Минимальные расстояния | 20 | Решение.java |
Базовое программирование | Прыгая по облакам | 20 | Решение.java |
Базовое программирование | Выровнять массив | 20 | Решение.java |
Базовое программирование | Дизайнер PDF-просмотра | 20 | Решение.java |
Базовое программирование | Повторяющаяся строка | 20 | Решение.java |
Базовое программирование | Добавить и удалить | 20 | Решение.java |
Базовое программирование | Выбор чисел | 20 | Решение.java |
Базовое программирование | Восхождение в таблице лидеров | 20 | Решение.java |
Базовое программирование | Уравнение последовательности | 20 | Решение.java |
Базовое программирование | Найти цифры | 25 | Решение.java |
Базовое программирование | Разрежьте палочки | 25 | Решение.java |
Базовое программирование | Таум и день рождения | 25 | Решение.java |
Базовое программирование | Флатландские космические станции | 25 | Решение.java |
Базовое программирование | Справедливые рационы | 25 | Решение.java |
Базовое программирование | Манаса и камни | 30 | Решение.java |
Объектно-ориентированное программирование | Класс против экземпляра | 30 | Решение.java |
Объектно-ориентированное программирование | Наследование | 30 | Решение.java |
Объектно-ориентированное программирование | Абстрактные классы | 30 | Решение.java |
регулярное выражение | HackerRank в строке! | 20 | Решение.java |
Выполнение
Субдомен | Испытание | Очки | Решение |
---|
Грубая сила | Панграммы | 20 | Решение.java |
Грубая сила | Строки: создание анаграмм | 25 | Решение.java |
Грубая сила | Создание анаграмм | 30 | Решение.java |
Грубая сила | Модифицированные числа Капрекара | 30 | Решение.java |
Ява
Субдомен | Испытание | Очки | Решение |
---|
Введение | Добро пожаловать на Яву! | 3 | Решение.java |
Введение | Java Stdin и Stdout I | 5 | Решение.java |
Введение | Java, если-иначе | 10 | Решение.java |
Введение | Java Stdin и Stdout II | 10 | Решение.java |
Введение | Форматирование вывода Java | 10 | Решение.java |
Введение | Java-циклы I | 10 | Решение.java |
Введение | Java-циклы II | 10 | Решение.java |
Введение | Типы данных Java | 10 | Решение.java |
Введение | Конец файла Java | 10 | Решение.java |
Введение | Блок статического инициализатора Java | 10 | Решение.java |
Введение | Java Int в строку | 10 | Решение.java |
Введение | Дата и время Java | 15 | Решение.java |
Введение | Форматер валюты Java | 15 | Решение.java |
Струны | Введение в строки Java | 5 | Решение.java |
Струны | Java-подстрока | 5 | Решение.java |
Струны | Сравнение строк Java | 10 | Решение.java |
Струны | Реверс строки Java | 10 | Решение.java |
Струны | Java-анаграммы | 10 | Решение.java |
Струны | Строковые токены Java | 15 | Решение.java |
Струны | Проверка синтаксиса шаблонов | 20 | Решение.java |
Струны | Java регулярное выражение | 25 | Решение.java |
Струны | Java Regex 2 – повторяющиеся слова | 25 | Решение.java |
Струны | Java Regex 3 — проверка имени пользователя | 20 | Решение.java |
Струны | Экстрактор содержимого тегов | 20 | Решение.java |
БигНумбер | Java BigInteger | 10 | Решение.java |
БигНумбер | Java BigDecimal | 20 | Решение.java |
БигНумбер | Тест на примитивность Java | 20 | Решение.java |
Структуры данных | Java 1D-массив | 5 | Решение.java |
Структуры данных | Java 2D-массив | 10 | Решение.java |
Структуры данных | Подмассив Java | 10 | Решение.java |
Структуры данных | Java-массив | 10 | Решение.java |
Структуры данных | Java 1D-массив (часть 2) | 25 | Решение.java |
Структуры данных | Список Java | 15 | Решение.java |
Структуры данных | Карта Явы | 10 | Решение.java |
Структуры данных | Java-стек | 20 | Решение.java |
Структуры данных | Java-хэшсет | 10 | Решение.java |
Структуры данных | Дженерики Java | 15 | Решение.java |
Структуры данных | Java-компаратор | 10 | Решение.java |
Структуры данных | Java-сортировка | 10 | Решение.java |
Структуры данных | Java-очередь | 20 | Решение.java |
Структуры данных | Java BitSet | 20 | Решение.java |
Объектно-ориентированное программирование | Наследование Java I | 5 | Решение.java |
Объектно-ориентированное программирование | Наследование Java II | 10 | Решение.java |
Объектно-ориентированное программирование | Абстрактный класс Java | 10 | Решение.java |
Объектно-ориентированное программирование | Java-интерфейс | 10 | Решение.java |
Объектно-ориентированное программирование | Переопределение метода Java | 10 | Решение.java |
Объектно-ориентированное программирование | Переопределение метода Java 2 (суперключевое слово) | 10 | Решение.java |
Объектно-ориентированное программирование | Ключевое слово Java Instanceof | 10 | Решение.java |
Объектно-ориентированное программирование | Java-итератор | 15 | Решение.java |
Объектно-ориентированное программирование | Расчет объема | 20 | Решение.java |
Обработка исключений | Обработка исключений Java (Try-catch) | 10 | Решение.java |
Обработка исключений | Обработка исключений Java | 15 | Решение.java |
Передовой | Java Varargs — простое дополнение | 15 | Решение.java |
Передовой | Java-отражение — атрибуты | 15 | Решение.java |
Передовой | Можете ли вы получить доступ | 15 | Решение.java |
Передовой | Прайм Чекер | 25 | Решение.java |
Передовой | Шаблон Фабрики Java | 15 | Решение.java |
Передовой | Шаблон Java Singleton | 15 | Решение.java |
Передовой | Шаблон посетителя Java | 40 | Решение.java |
Передовой | Java-аннотации | 25 | Решение.java |
Передовой | Ковариантные типы возврата | 20 | Решение.java |
Передовой | Java-лямбда-выражения | 30 | Решение.java |
Передовой | Ява MD5 | 30 | Решение.java |
Передовой | Java SHA-256 | 30 | Решение.java |
SQL
Субдомен | Испытание | Очки | Решение |
---|
Базовый выбор | Пересмотр запроса выбора I | 10 | Решение MySQL |
Базовый выбор | Пересмотр запроса выбора II | 10 | Решение MySQL |
Базовый выбор | Выбрать все | 10 | Решение MySQL |
Базовый выбор | Выбрать по идентификатору | 10 | Решение MySQL |
Базовый выбор | Атрибуты японских городов | 10 | Решение MySQL |
Базовый выбор | Названия японских городов | 10 | Решение MySQL |
Базовый выбор | Станция метеорологических наблюдений 1 | 15 | Решение MySQL |
Базовый выбор | Станция метеорологических наблюдений 3 | 10 | Решение MySQL |
Базовый выбор | Станция метеорологических наблюдений 4 | 10 | Решение MySQL |
Базовый выбор | Станция метеорологических наблюдений 5 | 30 | Решение MySQL |
Базовый выбор | Станция метеорологических наблюдений 6 | 10 | Решение MySQL |
Базовый выбор | Станция метеорологических наблюдений 7 | 10 | Решение MySQL |
Базовый выбор | Станция метеорологических наблюдений 8 | 15 | Решение MySQL |
Базовый выбор | Станция метеорологических наблюдений 9 | 10 | Решение MySQL |
Базовый выбор | Станция метеорологических наблюдений 10 | 10 | Решение MySQL |
Базовый выбор | Станция метеорологических наблюдений 11 | 15 | Решение MySQL |
Базовый выбор | Станция метеорологических наблюдений 12 | 15 | Решение MySQL |
Базовый выбор | Выше 75 баллов | 15 | Решение MySQL |
Базовый выбор | Имена сотрудников | 10 | Решение MySQL |
Базовый выбор | Заработная плата сотрудников | 10 | Решение MySQL |
Базовое присоединение | Население Азии | 10 | Решение MySQL |
Базовое присоединение | Африканские города | 10 | Решение MySQL |
Базовое присоединение | Среднее население каждого континента | 10 | Решение MySQL |
Базовое присоединение | Отчет | 20 | Решение MySQL |
Агрегация | Пересмотр агрегатов — функция подсчета | 10 | Решение MySQL |
Агрегация | Пересмотр агрегатов — функция суммы | 10 | Решение MySQL |
Агрегация | Пересмотр агрегатов — средние значения | 10 | Решение MySQL |
Агрегация | Средняя численность населения | 10 | Решение MySQL |
Агрегация | Япония Население | 10 | Решение MySQL |
Агрегация | Разница в плотности населения | 10 | Решение MySQL |
Агрегация | Ошибка | 15 | Решение MySQL |
Агрегация | Самые прибыльные | 20 | Решение MySQL |
Агрегация | Станция метеорологических наблюдений 2 | 15 | Решение MySQL |
Агрегация | Станция метеорологических наблюдений 13 | 10 | Решение MySQL |
Агрегация | Станция метеорологических наблюдений 14 | 10 | Решение MySQL |
Агрегация | Станция метеорологических наблюдений 15 | 15 | Решение MySQL |
Агрегация | Станция метеорологических наблюдений 16 | 10 | Решение MySQL |
Агрегация | Станция метеорологических наблюдений 17 | 15 | Решение MySQL |
Агрегация | Станция метеорологических наблюдений 18 | 25 | Решение MySQL |
Агрегация | Станция метеорологических наблюдений 19 | 30 | Решение MySQL |