def find_sequence(numbers): result = {} for i in range(len(numbers)): num = numbers[i] result[num] = result.get(num, [num]) for key in result.keys(): if key < num: result[num] = result[key] + [num] if len(result[num]) <= len(result[key]) + 1 else result[num] longest = sorted(list(result.values()), key=len, reverse=True) # print(longest) # print() return longest[0] if __name__ == "__main__": assert find_sequence([1, 2, 3]) == [1, 2, 3] assert find_sequence([3, 2, 1]) == [3] assert find_sequence([1, 1, 1, 1, 1]) == [1] assert find_sequence([1, 8, 2, 7, 3, 6]) == [1, 2, 3, 6] assert find_sequence([1, 1, 2, 2, 3, 3]) == [1, 2, 3] assert find_sequence([4, 1, 5, 6, 3, 4, 3, 8]) == [1, 5, 6, 8] assert find_sequence([9, 2, 9, 1]) == [2, 9] assert find_sequence([8, 6, 1, 1, 9, 4, 7]) == [1, 4, 7] assert find_sequence([10, 34, 43, 17, 33, 83, 73, 35, 92, 68, 33, 14, 13, 80]) == [10, 17, 33, 35, 68 ,80] assert find_sequence([96, 80, 54, 81, 39, 42, 17, 13, 4, 10, 50, 26, 13, 95, 12, 8, 75, 38, 27, 68, 64, 36, 25, 89, 96]) != [] assert find_sequence([65, 4, 62, 22, 47, 99, 83, 11, 23, 22, 61, 49, 9, 60, 32, 53, 59, 81, 36, 68, 66, 69, 47, 23, 29, 95, 85, 31, 83, 82, 44, 31, 19, 22, 97, 91, 48, 69, 49]) != [] assert find_sequence([79, 26, 75, 65, 34, 29, 33, 73, 13, 10, 29, 43, 78, 8, 25, 9, 78, 28, 70, 58, 86, 87, 52, 7, 1, 81, 62, 44, 49, 15, 6, 14, 94, 37, 90, 61, 28, 39, 10, 72, 80, 95, 91, 65, 99, 60, 54, 68, 84, 76, 70, 54, 65, 54, 8, 37, 57, 87, 85, 32, 10, 44, 47, 5, 91, 17, 88]) != []