Возврат последовательных последовательностей положительных чисел в списке

#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. на самом деле, все, что мне нужно сделать, это вернуть количество целых чисел в последовательности. не сама последовательность.