Skip to content

Maria-Lipina/Java-workbook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

181 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Рабочая тетрадь, чтобы собрать вместе учебные упражнения (не все) и просто полезные куски кода.

Большая часть из них скопирована полностью или частично со скриншотов без возможности сослаться на конкретных пользователей - авторов оригиналов. Или просто скопирована и сохранена на память с многочисленными благодарностями к авторам.

Некоторые упражнения с LeetСode могут не запуститься на сайте, так как после submission были адаптированы под формат и запуск, как в основном репозитории Package lee_algorithm - алгоритм Ли для поиска в ширину. Задачи:

  1. ArrayTasks: решение нескольких задач: 1) перемешивание массива, 2) переставление элементов в обратном порядке, 3) поиск индекса элемента, отличающегося от предыдущего на заданную величину, 4) подсчет таких пар индексов в двух массивах, элементы под которыми дают при сложении заданную величину.
  2. BinarySearch: алгоритм бинарного поиска разные вариации
  3. BinaryTree: добавление элемента и поиск в бинарном дереве (без балансировки)
  4. BitShift: показать, как действуют операции побитового сдвига (из Шильдта Java: A Beginner`s Guide)
  5. Eratosthene: решето Эратосфена
  6. Fraction: программа для арифметических операций (здесь только сложение) над рациональными числами. Входные числа передаются в форме строки "числитель/знаменатель"
  7. GCD: поиск наибольшего общего делителя (Greatest Common Divisor) по алгоритму Эвклида
  8. HanoiTower: программа, показывающая последовательность действий для игры “Ханойская башня”
  9. HeapSort: пирамидальная сортировка
  10. Knights: Шахматную доску размером NxN обойти конём так, чтобы фигура в каждой клетке была строго один раз. Пример для доски 5х5 решение может выглядеть так.
25 14 3 8 19
4 9 18 13 2
15 24 1 20 7
10 5 22 17 12
23 16 11 6 21
  1. LCM: поиск наименьшего общего кратного (Least common divisor)
  2. MathExpr: Задано уравнение вида q + w = e, q, w, e >= 0. Некоторые цифры могут быть заменены знаком вопроса, например 2? + ?5 = 69. Требуется восстановить выражение до верного равенства. Предложить хотя бы одно решение или сообщить, что его нет.
  3. MergeSort: сортировка слиянием
  4. MergeStrings: решение задачи по ссылке https://leetcode.com/problems/merge-strings-alternately/
  5. MinStack: решение задачи по ссылке https://leetcode.com/problems/min-stack/
  6. MountainArray: решение задачи по ссылке https://leetcode.com/problems/valid-mountain-array/
  7. MyQueue: решение задачи по ссылке https://leetcode.com/problems/implement-queue-using-stacks/
  8. NumberSystem: Вычислительная компания XYZ закупила новые экспериментальные компьютеры, но её сотрудники не знают, в какой системе счисления новые компьютеры выдают результаты их вычислений. Помогите им определить их результаты в традиционной десятичной системе, если известно, что последовательность цифр N, которую выдает экспериментальный компьютер, записана в минимально возможной для этого системе счисления. В единственной строке записано исходное число N: 1 ≤ N ≤ 1000000
  9. NumsPermutation: сгенерировать все комбинации заданной длины, состоящие из чисел от 1 до заданного целочисленного параметра.
  10. PasswordGenerator: сгенерировать N паролей определенной длины и записать в текстовый файл с хэш-кодом или без него. Путь к файлу, количество паролей, длина одного пароля передаются в аргументах.
  11. PolishNotation: решение задачи по ссылке https://leetcode.com/problems/evaluate-reverse-polish-notation/
  12. Power: возведение целого числа в степень через побитовый сдвиг
  13. PrimeDivisors: поиск простых делителей числа
  14. Queens: На шахматной доске расставить 8 ферзей так, чтобы они не били друг друга.
  15. RedBlackTree: красно-черное левостороннее дерево
  16. RLE: cжатие строки через run-length-encoding. Пример: вход ааааbbbcd, результат - а4b3cd2.
  17. SimplifyPath: решение задачи по ссылке https://leetcode.com/problems/simplify-path/
  18. Sort: Сортировка пузырьком, выбором, вставками, быстрая
  19. StringPalindrome: Напишите метод, который принимает на вход строку и определяет, является ли она палиндромом.
  20. Tree: базовая реализация дерева как структуры данных
  21. TreeFactorial: вычисление факториала за O(n/2) операций
  22. Triangle: Даны три числа. Могут ли они быть сторонами треугольника?
  23. TwoCommands: На вход некоторому исполнителю подаётся два числа (a, b). У исполнителя есть две команды
    • команда 1 (к1): увеличить в с раза, а умножается на c
    • команда 2 (к2): увеличить на d ( +2 ), к a прибавляется d написать программу, которая выдаёт набор команд, позволяющий число a превратить в число b или сообщить, что это невозможно Пример 1: а = 1, b = 7, c = 2, d = 1 ответ: к1, к1, к1, к1, к1, к1 или к1, к2, к1, к1, к1 или к1, к1, к2, к1. Пример 2: а = 11, b = 7, c = 2, d = 1 ответ: нет решения. *Подумать над тем, как сделать минимальное количество команд
  24. TwoWayList: Реализовать двусвязный список + методы односвязного

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors