Вопрос о цепочке:
1. Вывести число Четное –Четное или как вариант
2. Создайте программу взаимоблокировки с использованием двух или более потоков
3. Последовательность печати с использованием трех или четырех потоков
4. Реализуйте семафор
5. Проблема производителя и потребителя.
6. Последовательность выполнения N потоков.
7. Напишите код для реализации блокирующей очереди в Java.
8. Распечатайте число, используя три или более потоков.
9. Реализуйте кэш LRU
10. Реализуйте распределенный кэш, расширяет кеш LRU.
Строковые вопросы
- Найдите K наиболее часто встречающихся слов из больших файлов.
- Умножьте два String.
- Посмотри и скажи узорчатую печать. Подсказка [Счетчик + это число из предыдущей числовой строки]
1
11
21
1211
111221
312211
13112221
1113213211 - Сортировать строку в лексикографическом порядке с помощью попыток.
4. Проблема с разрывом слова. Использование Tries. Например, ввод: ilikesamsung
Вывод: да. Объяснение: Строка может быть сегментирована как «i like samsung» или «i like sam sung».
6. Строка является палиндромом или нет. (исходный = обратный)
7. Сожмите строку как aaabbaaaaaddcccc = a3b2a5d2c4 (используйте 2Dmatrix или связанный список (данные, количество) (рассмотрите случай aaa333bbbb444)
8. найдите n-е вхождение строки в другой строке
9. Найти первый без повторяющегося символа в данной строке.
10. Распечатать все перестановки строки
11. Найти наименьшую подстроку, которая содержит все символы данной строки шаблона.
12. Числа Армстронга: abcd = pow (a, n) + pow (b, n) + pow (c, n) + pow (d, n), где n = 4 цифры.
13. Найдите самый большой палиндром в Строка.
14. Проверить, является ли строка панаграммой. Подсказка: строка Панаграммы означает, что она содержит все символы английского языка.
15. Проверьте, являются ли строки вращением друг друга или нет. Скажем, строка «rajeev» »И строку поворота« jeevra ».
16. Распечатать все перестановки строки в Java.
17. Довольно распечатать JSON из заданной строки JSON.
18. Найти наименьшее окно в строке содержащие все символы другой строки. S = "ADOBECODEBANC" T = "ABC" Result: Minimum windo w "BANC"
Числовые вопросы:
- Дано число прописью. Например, если введено «1234», на выходе должно быть «одна тысяча двести тридцать четыре».
- Напишите программу для ряда Фибоначчи и N-го числа Фибоначчи со следующим подходом.
[Используя Рекурсию / Динамическое программирование / и используя временную переменную] - проверьте, N - пятиугольное число, или найдите N-е пятиугольное число.
- N / 3 повторяющихся числа в массиве с пробелом O (1)
- найти элемент большинства в массиве с пробелом O (1).
- Проверьте, является ли данное число степенью двойки.
- Преобразование десятичного числа в римские цифры.
- Преобразование числа римских цифр в десятичное.
- Найдите прыгающие числа. [разница в соседних цифрах должна быть ровно 1]
- Расположите заданные числа так, чтобы получилось наибольшее число. [3, 30, 34, 5, 9] → 9534330
- Контрольный номер является палиндромом или нет.
- Имя столбца таблицы Excel для данного числа. пусть Say 1 → A, 28 → AB, 75 → BW
- Оцените число, если указано имя столбца листа Excel. Скажем, AA → 27, C → 3 и т. Д.
Массив вопросов для собеседования
- Поиск числа из отсортированного по строкам и столбцам двумерного массива.
- Наибольшая прямоугольная область на гистограмме.
- Проблема с прыжком кенгуру. Если два человека начинают движение с разных точек с разной скоростью, проверьте, встретятся ли они когда-нибудь.
- Максимальный подмассив продукта (с использованием двух обходов)
- Переставляйте [разделяйте] положительные и отрицательные числа с постоянным дополнительным пробелом. Пример: -7,4,6, –4, 8,6, -3 выход: -7, -4, -3, 4,6,6,8
- Подсчитайте отрицательное число из отсортированного по строкам и столбцам 2D-массива.
- Максимальная сумма, при которой нет двух соседних элементов.
- Искать элемент в отсортированном и вращающемся массиве.
- Повернуть массив на k позиций
- Разделите нули и единицы в массиве за одну итерацию.
- Определите, можно ли разделить массив на два подмассива с одинаковой суммой.
- Индекс равновесия массива. Найдите индекс, где массив разделен на две равные части суммы . (O (N))
- Найдите пересечение двух массивов. В порядке сложности O (n).
- Есть список пакетов с заданным количеством конфет. Санта раздал эту сумку M детям таким образом, чтобы разница в способах была минимальной, чтобы свести к минимуму драку между ними .
- Найти мажоритарный элемент из заданного массива элементов. Элемент большинства - число, которое встречается более 50% раз .
- Цена акций указана на каждый день. Найдите лучшее время для покупки и продажи акций с максимальной прибылью .
- Программа для определения количества воды в данном стакане. [Проблема с переливом воды]
- Проблема улавливания дождевой воды.
- Найдите максимальную сумму непрерывного подмассива из заданного массива целых чисел. [Алгоритм Кадане.]
- Подсчитайте отдельные элементы в каждом окне размера k.
Вопросы по анаграммам:
1. Проверьте, являются ли две строки анаграммой или нет.
2. Разделите все строки с одинаковыми символами.
3. Преобразуйте строку X в анаграмму строки Y с минимальным количеством замен.
4. Удалите минимальное количество символов, чтобы две строки стали анаграммой.
5. Найдите анаграммы с наибольшим вхождением из больших файл.
Проблемы с сортировкой и поиском:
- Объединить два отсортированных массива. Один возрастает, а другой убывает. [Оптимизировать]
- Объединить два отсортированных массива.
- Объединить N отсортированных массивов. M-способ сортировки слиянием. Концепция (найти минимальный элемент и его позицию в первом элементе каждого массива и, наконец, добавить в другой (результирующий массив) и удалить из соответствующего массива.
Использование минимальной кучи : Сложность будет O (mNlogN) - Массив сортировки, содержащий диапазон элементов от 0 до N., где N - верхний предел, не должен быть очень большим.
- Реализация сортировки выбора. Некоторое использование этого алгоритма
A. n-й наибольший или наименьший элемент из несортированного массива. где n ‹N - Реализация сегментной сортировки.
- Сохранить строку в отсортированном виде [использовать попытки]
- Счетная сортировка Реализация и использование.
Проблемы с перекрытием времени / выбором действий
1. Найдите первый круговой обход, который посещает все бензоколонки.
2. Для одной станции даны N номеров прибытия и времени отправления поездов. Узнать максимальное количество форм для всех поездов в обязательном порядке и без нарушения расписания поездов .
3. Есть один зал для вечеринок. Для каждой партии указано время начала и окончания события. Определите максимальное количество мероприятий, которые можно организовать, и перечислите эти мероприятия.
4. Есть один зал для вечеринок. указано время прибытия и отъезда гостя. Узнайте максимальное количество гостей в определенные временные интервалы.
5. Объедините перекрывающиеся интервалы.
ПОТОКОВЫЙ вопрос:
- Найдите Медиану в потоке целых чисел.
- Найдите K-й самый большой элемент из пары целых чисел
- Найдите наиболее частое слово из Stream of String
- Найти самый большой элемент из потока целых чисел
- Найдите K наиболее часто встречающихся слов из потока целых чисел.
Куча вопросов
Примечание. Куча не поддерживает операцию поиска, и она не уверена, что левый дочерний элемент больше или меньше правого и наоборот.
1. Найдите K-й самый большой элемент из пары целых чисел. (Подход Подготовьте минимальную кучу с k последовательными элементами потока. Затем сравните корневой элемент минимальной кучи с входным элементом потока, если входной элемент больше, чем замените корень текущим элементом, и вызовите heapify.
2. Найдите K или K-е наиболее часто используемое слово из большого файла.
3. M-способ сортировки слиянием. Выполните сортировку слиянием для сортировки m чисел в массиве.
4. Медиана в потоке целых чисел (бегущие числа)
5. Сортировка очень большого файла, который не помещается в ОЗУ оперативной памяти.
Используйте технику внешней сортировки.
Внешняя сортировка:
Шаг 1. Прочтите небольшие фрагменты данных из файла
Шаг 2. Отсортируйте фрагмент с помощью сортировки слиянием или быстрой сортировки.
Шаг 3. Сохраните ссылку на отсортированный массив в оперативной памяти и сохраните отсортированный массив обратно на диск.
Шаг 4. Повторите шаги 1–3 до тех пор, пока не будет прочитано весь файл
Шаг 5. Примените m-way сортировку слиянием, чтобы отсортировать все фрагменты.
6. M-way Merger Sort: Допустим, есть m массивов. Возьмите 1-й элемент каждого массива и сформируйте Min-Heap.
Корневой элемент - это отсортированный элемент кучи, извлеките этот элемент из кучи и замените следующим элементом массива, которому принадлежит текущий минимальный элемент. Продолжайте делать, пока куча не станет пустой.
7. Объедините N отсортированных массивов или связанных списков в отсортированный массив или связанный список. Здесь N ›2… 1000 [Подсказка решения дана в предыдущем вопросе]
8. Реализация алгоритмов кодирования Хаффмана.
Проблемы со связным списком:
- Обратный связанный список с использованием рекурсии и итерационного подхода
- Свести связанный список
- Найти K-й узел из последнего в связанном списке. Использование только одной итерации.
- Найти K-й узел из последнего в связанном списке. Только с использованием рекурсии.
- Поочередно отсортируйте k узлов связного списка. Например: 8 → ›6 → 11 → 15 → 1 → 2. Выход: 6 → 8 → 11 → 15 → 1 → 2.
- Поочередно переверните k узлов Связанного списка. Например: 8 → ›6 → 11 → 15 → 1 → 2. Выход: 11 → 6 → 8 → 15 → 1 → 2.
- Найдите пересечение двух связанных списков.
- Напишите программу, которая объединяет два отсортированных односвязных списка в один отсортированный связанный список, в котором необходимо удалить дубликаты.
- C проверьте, есть ли в связанном списке цикл или нет.
- Как найти средний элемент или разделить список на две части. [В одной итерации]
- Добавьте два полинома или два числа, представленных списком.
- Проверьте, является ли связанный список палиндромом или нет. [Разделите список на две половины, затем переверните вторую половину и сравните обе половины, если они идентичны, это означает, что это палиндром, и повторите то же самое, переверните первую половину и сравните вторую one] Требуется поставить условие для палиндрома четной нечетной длины.
- Сгладить связанный список.
- Удалить узел из связанного списка без указателя заголовка.
Стек и очередь
- Обратный стек с помощью рекурсии
- Проверить, сбалансированы скобки или нет.
- Реализовать очередь из двух стеков
- Реализуйте стек с функцией, чтобы получить минимум за O (1).
Подход 1. Возьмите еще одну стопку, содержащую упорядоченный минимальный элемент. Операция Push и Pop Сложность равна O (1), но Сложность пространства в худшем случае O (n), когда ввод находится в порядке убывания.
Подход 2. Сохраняйте 1 стек и еще одну кучу для получения мин. Таким образом, когда новый объект вставлен в стек, в то же время тот же элемент вставлен в минимальную кучу. Таким образом, метод getMin () возвращает корневой элемент кучи. Для операции Pop мы должны удалить элемент из стека, а также из кучи, также путем линейного поиска и удаления элемента и вызова метода heapify для балансировки кучи. Сложность push и Pop O (nlogn) и Space Complexity O (n)
5. Реализуйте стек, используя связанный список.
6. Реализуйте 3 стека или n стеков в заданном массиве.
7. Напишите программу для сортировки стека в порядке возрастания.
8. Сортировка стопки с помощью рекурсии.
Матричные проблемы
- Распечатайте матрицу по спирали. начать с [0, 0].
2. Распечатать матрицу зигзагообразно по диагонали.
3. Искать элемент в матрице, отсортированной по строке и столбцу.
4. Повернуть матрицу на 90 градусов [ Транспонировать матрицу + перевернуть каждую строку].
5. Оценить транспонирование данной матрицы.
6. Оценить матричное умножение двух матриц.
7. Подматрица прямоугольника максимального размера со всеми единицами. < br /> 8. Убедитесь, что одна матрица существует в другой матрице.
9. Максимальный размер двоичной подматрицы прямоугольника со всеми единицами.
10. Уникальные пути в сетке с препятствиями.
Двоичное дерево поиска и проблема с двоичным деревом
- Самый низкий общий предок в двоичном дереве.
Подсказка:
Подход 1: узел-предок может сам быть одним из узлов.
Случай 1: оба узла расположены слева Поддерево или правое поддерево
Случай 2: В любом узле один узел лежит в левом поддереве, а другой лежит в правом поддереве, причем корень не будет узлом-предком.
Подход 2 (не рекомендуется): найдите путь от корня к конкретным узлам n1 и узлу n2 и сохраните их путь в массиве с помощью подхода двоичного поиска, а затем сравните оба пути, если мы найдем (i + 1) th index не соответствует, что означает, что узел в Ith будет LCA.
График:
- Найти цикл в ориентированном графе. [используйте три набора: белый, серый и черный набор]
- Длина кратчайшей цепочки для достижения целевого слова. (Применить BFS)
Ввод: Dictionary = {POON, PLEE, SAME, POIE, PLEA, PLIE, POIN} start = TOON target = PLEA
3. Проверьте, является ли данный граф Двудольным или нет [возьмите двухцветный график для раскраски]
4. По степени и по степени диаграммы
5. Раскраска графика
6. Минимальное время, необходимое для сгнили все апельсины. Из данной матрицы оцените количество компонентов соединения. Следовательно, нет связанного компонента = временные рамки.
7. График обхода BFS и DFS.
8. Найдите номер Исландии в данной матрице, который представляет график.
9. Найдите количество связанных компонентов в График.
Отслеживание с возвратом
A. Когда решение основано на попадании и испытании или существует одно решение, но оно оценивается на основе попаданий и проб или экспериментов, тогда применимо отслеживание с возвратом.
Два основных момента в отслеживании с возвратом
A. Рекурсия
B. Сохраните промежуточное решение.
C. Если решение не найдено или не найдено, сбросьте массив или матрицу решений, чем попробуйте с другим вводом. Продолжайте искать все возможные решения.
1. Задача N-Queen.
2. Представьте
3. (Судоку)
4. Представьте дату с помощью двух кубиков и одного из кубиков. нумерация так, чтобы сумма чисел была точным квадратом.
5. Задача раскраски графика.
6. Задача «Крыса-лабиринт».
=============== ПОПЫТКИ ===============
Преимущества попыток:
1. Отсутствие префикса поддержки структуры данных. поиск кроме попыток. Таким образом, все слова после префикса появятся в списке поиска. Но в случае хеширования он не вернет ни результата, ни неверного результата.
2. Обход связей всегда в отсортированном порядке.
Недостаток попыток: сложность пробела составляет O (n), где n - размер набора символов.
1. Реализация словаря.
2. Поиск префикса заданных слов
3. Kth или K наиболее часто использованные слова.
Двоичное дерево и BST
Https://www.geeksforgeeks.org/binary-tree-data-structure/
Примечание:
1. При написании решения BST мы должны думать и писать решение в соответствии с обходом, а вызов рекурсивной функции должен иметь аналогию с обходом.
2. Если рекурсивная функция возвращает логическое значение, чем while возвращает агрегат обоих результатов поддерева [& или || ].
3. В рекурсии, когда мы возвращаем значение, основанное на условии if, помните, что функция будет вызываться рекурсивно или нет. Оператор return может сделать рекурсивную функцию простым вызовом функции.
1. Как отсортировать большой массив с большим количеством повторений. [Используя BST или используя сортировку Count, если диапазон чисел не велик]
2. Печать обхода Postorder из заданных обходов In-order и Preorder
3. Отметьте двоичное дерево, представляющее кучу. (Проверьте номер узла и минимальную или максимальную кучу. Обратите внимание, что это не проверяет BST)
4. Проверьте, является ли двоичное дерево поддеревом другого двоичного дерева.
Два подхода,
A. В родительском сначала найдите узел, который равен заданному поддереву, и проверьте
Поддерево в родительском и заданном дереве идентичны или нет.
Б. Обход по порядку или оба дерева и точное сопоставление одного дерева в другом дерево. Если образец найден, значит, он не существует.
5. Обход по порядку, предварительному заказу и почтовому заказу без рекурсии.
6. Спиральная печать BST
7. Проверьте, складывается ли двоичное дерево или нет.
Случай 1: если структура левого и правого поддерева идентична или не зависит от значений.
Случай 2: преобразовать левое поддерево в зеркальное отображение и затем сравнить.
8. Кратчайшее расстояние между двумя узлами в BST
Найдите LCA, и расстояние от LCA обоих узлов будет расстоянием между ними.
9. Дерево выражений
10. Обход дерева DFS и BFS.
11. Является ли BST сбалансированным по высоте деревом not.
12. Удалить узел из BST.
13. Вывести узел родственника данного узла. (Это не проблема печати узлов на втором уровне от уровня бабушки и дедушки. Таким образом, его бабушка и дедушка являются только дочерними узлами других дочерних узлов. Так что не забудьте исключить дочерние узлы родителя)
14. Распечатать путь между двумя узлами.
15. Найти наименьшего общего предка как узла, так и агрегатного пути от предка к другому узлу - это путь между ними.
16. Подсчитать количество выходных узлов.
17. Найти последователя в порядке и В порядке предшественника.
Последователь по порядку:
Случай 1: если правое поддерево существует от узла, тогда минимальное правое поддерево будет преемником
Случай 2: если правое поддерево не существует, чем любой узел, который сразу больше, чем данный узел будет преемником. Итак, начните с корневого узла и найдите данный узел и найдите узел, значение которого больше, чем данный узел на пути поиска, будет последовательным преемником.
18. Самый низкий общий предок в двоичном дереве.
Подсказка:
Подход 1: узел-предок может сам быть одним из узлов.
Случай 1: оба узла находятся в левом поддереве или правом подчиненном -дерево
Случай 2: В любом узле один узел лежит в левом поддереве, а другой - в правом поддереве, причем корень не будет узлом-предком.
Подход 2 (Избегайте): найдите путь от корня к конкретным узлам n1 и узлу n2 и сохраните их путь в массиве с помощью подхода двоичного поиска, а затем сравните оба пути, если мы обнаружим, что (i + 1) -й индекс не соответствует этому среднему узлу в Это будет LCA.
19. Распечатать выходной узел двоичного дерева.
20. Вывести сумму двоичного дерева.
21. Найти сумму диагоналей двоичного дерева и пройти по диагонали.
22. Найти сумму по вертикали двоичного дерева.
23. Построить дерево из обхода порядка и уровня в порядке
24. Найдите диаметр или максимальную ширину двоичного дерева. Возможны два случая
25. Преобразование конечного узла двоичного дерева в DDL.
26. Удалить узел из BST.
Случай 1: если узел Leafe
Случай 2: если есть только один child [Родитель удаленного узла, которому напрямую назначен единственный дочерний элемент удаленного узла. Подход даже с наследником Inoder также работает]
Случай 3: Если есть оба дочерних элемента [найти преемника In в порядке и заменить его наследником по порядку]
27. Проверьте свойство Sum дочерних элементов в двоичном дереве
28 . Самый длинный путь, проходящий через корневой узел.
B. Путь существует левый или правый дочерний элемент.
Подход: Max [(высота левого дочернего элемента + высота правого дочернего элемента + корень) или Max (диаметр левого дочернего элемента или диаметр правого дочернего элемента. ).
29. Распечатайте BST по спирали. (первый уровень = 1, чем Уровень = n (высота дерева), чем уровень = 2, чем уровень n-1 и т. д.)
30. Распечатать уровни узлов или Вывести сумму уровней узлов в двоичном дереве. (Рекурсия и использование очереди).
31. Проверьте, может ли удаление ребра разделить двоичное дерево на две половины.
32. При заданном обходе двоичного дерева в порядке уровней проверьте, является ли дерево минимальной кучей
33. Найдите несовпадающие листья в двух двоичных деревьях.
34. Распечатайте уровень узлов, на котором сумма максимальна (рекурсия и использование очереди).
35. Распечатайте левый крайний узел двоичного дерева. [ Рассмотрим случай, когда крайний левый узел может находиться в правом поддереве]
36. Распечатать граничный узел.
37. Соединяйте узлы на одном уровне.
38. Распечатать дерево зигзагом с использованием только рекурсии. [Порядок уровней с LR и RL]
39. Распечатать узел, лежащий в диапазоне [low-high]
40. Проверьте, сбалансирован ли BST по высоте или нет. (Баланс высоты левого и правого дочерних элементов не должен быть больше 1)
41. Найдите самое большое поддерево BST в заданном двоичном дереве
42. Преобразуйте дерево BST в дерево BST с балансом высоты. (Сохраните inoder данных а затем сделайте mid или этот массив корнем дерева.)
43. Оценка дерева выражений
44. Найдите ближайший узел для заданных значений.
45. Создайте клонированное дерево из заданного дерева.
46. Убедитесь, что два BST или двоичного дерева являются зеркальным отображением друг друга.
47. Преобразуйте BST / двоичное дерево в двусвязный список.
Узел.L = предыдущий
Предыдущий R = узел
Prev = узел
48. Диагональная сумма или BST или диагональная печать BST.
49. Дан несортированный массив. Найдите количество больших элементов справа от текущего элемента в массиве. Найдите это для каждого элемента массива. Ожидаемая временная сложность меньше, чем O (n²)
50. Печатать вид слева, вид бинарного дерева справа
51. Печать вида сверху и вида дерева снизу
52. У вас есть BST, и вам нужно присвоить соответствующее значение соседу всех узлов (объяснено в примере).
A
/ \
B C
/ \ \
D E F
Основываясь на приведенном выше дереве,
Узел: Сосед
A: NULL
B: C
D: E
E: F
53. Проверьте, все ли листья находятся на одном уровне.
54. Найти обход без рекурсии.
55. Сумма всех чисел, образованных от корневого пути до конечного.
Динамическое программирование
- Https://www.martinkysel.com/hackerrank-solutions/
- Примечание. Проблема решается рекурсивно, также может быть решена DP.
Вызов функции Recursion Solution аналогичен формуле DP для запоминания. - Распечатайте все палиндромные пути в матрице сверху слева направо и обратно.
- Определите, является ли строка K-палиндромом или нет.
- Подсчитайте все возможные пути от верхнего левого угла до нижнего правого угла матрицы mXn
- Проблема с золотым рудником
- В здании 100 этажей. Один из этажей - самый высокий, с которого можно уронить яйцо, не разбив его.
Первый Случайным образом выберите этаж, скажем X-й этаж, и бросьте яйцо.
Случай 1: Если яйцо разобьется, означает минимальный этаж, на котором яйцо будет разбито, это ‹= X.
Случай 2: Если яйцо не разбивается, соберите яйцо и попробуйте с (N-X) оставшимся полом. - Фибоначчи по DP
- Проблема с суммой подмножества: a - массив длиной n
Случай 1: если сумма ‹a [n-1] означает последний элемент, мы должны игнорировать, а затем найти подмножество с суммой
Случай 2: теперь элемент n-1 остается, то есть две возможности
Случай A: либо мы включаем последний элемент и рекурсивно вызываем подмножество суммы
Случай B: sum-a [n-1], вычитаем последний элемент и затем находим подмножество для суммы с элементом n-1 - Умножение цепочки матриц с минимальными затратами на операцию.
A. Группа умножения заданной длины l ›1 до n-1
B. Точка, где мы можем разделить дальше для выполнения
C. If Length l и группа начинаются с I, затем j = i + l + 1
D. Есть три длины подгруппы умножения матриц дисперсии l, начальная точка I и точка разделения k, значение которых может быть от I до j-1. < br /> Формула: M [i, j] = Min (M [I, k] + M [k + 1, j] + pi * pk + 1 * pj + 1) - Если число игральных костей N с числами m, найдите количество способов составить число X из суммы вершины числа игральных костей [приближающееся число]
- Проблема размещения коробки
- Расстояние редактирования (рекурсивное решение и решение DP)
- найти Макс. общую подстроку.
- Найдите максимально возможную украденную ценность из дома. Где вор не может украсть ценности из соседних домов.
Dp [i] = max (hv [i] + dp [i-2], dp [i-1]); - Проблема с друзьями [То же, что и перерезание веревки]
- Самая длинная подпоследовательность палиндрома
11. Канат для максимальной резки продукта. Или задано разделение числа таким образом, чтобы сумма оставалась неизменной, но произведение этих разделов должно быть максимальным.
Случайным образом перерезать веревку в позиции i. Проверить максимальный продукт резки в этой позиции
Случай 1: разрез в I позиции оптимален, следовательно (ni) * i
Случай 2: Если разрез в I позиции невозможен, найдите разрез в позиции в оставшейся части веревка (ni), где произведение будет максимальным, и умножение на оставшуюся часть веревки 1-я часть (ni)
Формула будет такой:
Fun (n) = Max [(ni) * i, Fun (ni) * ( ni)]
13. Есть n количество игральных костей с номером m на стороне игральных костей. Найдите максимальное количество способов составить заданную сумму из суммы чисел на выбранной грани кубиков.
14. Подсчитайте количество способов преодолеть расстояние.
15. Задача размены монеты.
A. Минимальное количество способов образовать данное число
B. Нет различных способов образовать данное число.
16. Самая длинная возрастающая подпоследовательность if (a [i] ›a [j]) T [i] = max (T [i], T [j] +1
17. Найдите подмножество массива, сумма которого задана.
18. 1/0 Задача о ранце
19. Задача о самой длинной общей подпоследовательности.
if (X [i] = Y [j]) {T [i] [j] = T [i-1] [j-1] +1} else {T [i] [j] = max (T [i-1] [j], T [i] [j-1];
20. Минимальное количество прыжков, необходимых для достижения конца.
if (i ‹= j + a [ j]) {T [i] = T [j] +1} else {Прыжок невозможен}
T []
21. Учитывая строку S и строку T, подсчитайте количество различных подпоследовательностей T в S
22. Подсчитайте количество возможных декодирований данной последовательности цифр
Есть несколько случаев, которые необходимо обрабатывать
Случай 1: если последняя цифра равна нулю, значит, относительно нуля нет символа, поэтому игнорировать последний символ inputStr [n-1] ›0
- Случай 2: есть два числа 10 и 20 относительно них есть символ. 50 не является допустимым символом
Случай 3: символ представлен двумя цифрами.
A. Может быть последний символ больше 6, следовательно, нет символа для 27, 28,29… 34, 35, поэтому на двузначном символе
B. Но если 2-й последний символ равен 1, то 2-я цифра может быть любой, макс., то это будет 19, что допустимо для символа
C. Если 2-й последний символ равен 2, то последний символ будет быть меньше 7.
23. Покрасьте N Забор цветами K.
24. Постройте мост. Координаты даны в северном и южном регионах.
Отсортируйте их, но по южному региону, и найдите возрастающую подпоследовательность от северной.
25. Подпоследовательность увеличения максимальной суммы.
Это возрастающая проблема подпоследовательности с одной дополнительной контрольной суммой ограничения текущей подпоследовательности.
26. Найдите, чередуется ли строка с двумя другими строками.
Случай 1: A, B не имеет общего символа, то Простой способ вычисления
Случай 2: Если A, B также чередуются, тогда рекурсия / DP является решением.
DP: найти общую подпоследовательность между A, C длины A и B, C длины B, затем A, B, чередующиеся с C.
27. Минимальная стоимость подъема на верхнюю часть этажа по лестнице.
28. Количество способов добраться до N-го этажа сделав не более K прыжков
29. Palindrome Partitioning II
Загадки:
- Проблема с золотым слитком 7 кг. Продать ЗОЛОТОЙ батончик за 7 дней, но каждый день нельзя давать больше 1 кг и нужно делать минимальное количество кусочков.
- Переход по мосту с одиночным фонарем за минимальное время.
- Реализуйте секундомер с помощью двух свечей. Свечи могут перегореть за определенное время.