#python #list #jython
#python #Список #jython
Вопрос:
Мне нужно вернуть самую длинную последовательность положительных чисел в списке. в настоящее время у меня есть:
def longestSequencePos(nums):
longest_sequence = []
current_sequence = []
for obj in nums:
if current_sequence and current_sequence[-1] 1 == obj:
current_sequence.append(obj)
else:
current_sequence = [obj]
if len(current_sequence) > len(longest_sequence):
longest_sequence = current_sequence
return sum(1 for obj in longest_sequence if obj > 0)
Это возвращает только общее количество положительных чисел, которые появляются последовательно, поэтому оно не работает, когда последовательность составляет что-то вроде 5, 8, 12. Любая помощь будет оценена.
Ответ №1:
Посмотрите на проблему максимальной подпоследовательности.
Ответ №2:
В python вы могли бы:
def find_longest_sequence(source_list):
longest_sequence = []
current_sequence = []
for obj in source_list:
if current_sequence and current_sequence[-1] 1 == obj:
current_sequence.append(obj)
else:
current_sequence = [obj]
if len(current_sequence) > len(longest_sequence):
longest_sequence = current_sequence
return longest_sequence
print "Longest sequence:", find_longest_sequence([1,5,6,7,3,4,1,2,3,4,5,5,6,7])
Комментарии:
1. на самом деле, все, что мне нужно сделать, это вернуть количество целых чисел в последовательности. не сама последовательность.