Учитывая массив целых чисел, найдите наименьшую лексическую подпоследовательность с размером k. EX: Array : [3,1,5,3,5,9,2] k =4 Expected Soultion : 1 3 5 2
Наименьшая лексикографическая подпоследовательность размера k в массиве
0
A
ответ
0
Вот является greedy
алгоритм, который должен работать:
Choose Next Number (lastChoosenIndex, k) {
minNum = Find out what is the smallest number from lastChoosenIndex to ArraySize-k
//Now we know this number is the best possible candidate to be the next number.
lastChoosenIndex = earliest possible occurance of minNum after lastChoosenIndex
//do the same process for k-1
Choose Next Number (lastChoosenIndex, k-1)
}
Алгоритм выше - высокая сложность.
Но мы можем pre-sort
все элементы массива paired
с их array index
и сделать тот же процесс жадно, используя один цикл. Поскольку мы использовали сложность сортировки, все равно будет n*log(n)
0
- Предлагаю вам попробовать использовать модифицированную сортировку слияния. Место для
- изменено является частью слияния, отбросить дублирующее значение.
- выбрать наименьшее четыре
Сложность O (N LOGN) Продолжая думать, может ли сложность быть O (N)
+0
Это решение никогда не будет работать. Выбор самых маленьких - это не намерение. Намерение выбора минимальной последовательности лексикографии. Как пример: для ввода '2 1 1 1 9 9 9' выбор' 1 9 9 9' лучше, чем '2 1 1 1'. –
Смежные вопросы
- 1. Найдите отсортированную подпоследовательность размера 4 в массиве в линейном времени
- 2. Динамическое программирование для соответствия размера (наименьшая разность)
- 3. Найти самую длинную подпоследовательность в массиве
- 4. Поиск K наименьших целых чисел в несортированном массиве размера N
- 5. Лексикографическая сортировка в java?
- 6. MySQL Наименьшая длина матч
- 7. Подмножества индексирования размера k
- 8. Подграфы K-размера
- 9. Наименьшая общая целая java?
- 10. Лексикографическая сортировка по F #
- 11. Лексикографическая сортировка списка слов
- 12. Лексикографическая композиция - PHP
- 13. JAVA Дерево Сортировка лексикографическая
- 14. Сложность времени Kth наименьшая с использованием кучи
- 15. Наименьшая стоимость обхода массива
- 16. Самая длинная подпоследовательность Java
- 17. Наиболее распространенное подмножество размера k
- 18. Наибольшая возрастающая подпоследовательность
- 19. Найти самую длинную растущую подпоследовательность в двумерном массиве
- 20. Подпоследовательность с максимальной суммой в массиве из целых чисел
- 21. как найти самую длинную монотонную подпоследовательность уменьшения в массиве?
- 22. найти любую подпоследовательность увеличения с размером 3 в неупорядоченном массиве
- 23. Найти подпоследовательность с наибольшей суммой элементов в массиве
- 24. Общая подпоследовательность заданной длины
- 25. найти Top K элементов в массиве
- 26. Как найти max k элементов в массиве?
- 27. Найти k-е число в массиве сумм
- 28. найти k-й элемент в унимодальном массиве
- 29. Найти k наименьшее целое число в массиве
- 30. К-ю подпоследовательность строки
Это имеет смысл, но нет ли такого подхода к динамическому программированию? – v1kas
посмотреть здесь ожидаемый размер последовательности 'k' фиксирован. И вы хотите, чтобы lex был наименьшим из этих размеров. Любой подход к динамическому программированию, я думаю, является высокой сложностью и в основном заканчивается тем, что делает жадный подход. –