Skip to content

Instantly share code, notes, and snippets.

  • Save Denenberg/13d3b48360af8d525aadc05a788aae1a to your computer and use it in GitHub Desktop.
Save Denenberg/13d3b48360af8d525aadc05a788aae1a to your computer and use it in GitHub Desktop.
Как вариант, вот алгоритм для поиска возрастающей подследовательности максимальной длины в списке:
# Как вариант, вот алгоритм для поиска возрастающей
# подследовательности максимальной длины в списке:
# Здесь используется динамическое программирование.
# Массив dp хранит длины возрастающих подследовательностей,
# заканчивающихся на текущем элементе.
# Для каждой пары элементов numbers[i] и numbers[j] сравнивается,
# является ли numbers[j] предшественником numbers[i]
# в возрастающей подследовательности. Если numbers[j] < numbers[i],
# то dp[i] обновляется с учетом длины возрастающей
# подследовательности, заканчивающейся на j.
def longest_increasing_subsequence(numbers):
n = len(numbers)
dp = [1] * n
for i in range(1, n):
for j in range(i):
if numbers[j] < numbers[i]:
dp[i] = max(dp[i], dp[j] + 1)
return max(dp)
numbers = [10, 22, 9, 33, 21, 50, 41, 60, 80]
result = longest_increasing_subsequence(numbers)
print("The length of the longest increasing subsequence is:", result)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment