def llongest_increasing_subsequence(arr: list) -> list: if not arr: return [] dp = [[x] for x in arr] for i in range(len(arr)): for j in range(i): if arr[j] < arr[i] and len(dp[j]) + 1 > len(dp[i]): dp[i] = dp[j] + [arr[i]] return max(dp, key = len) print(dp) if __name__ == "__main__": print(f"llongest_increasing_subsequence([10, 9, 2, 5, 3, 7, 101, 18] -> {llongest_increasing_subsequence([10, 9, 2, 5, 3, 7, 101, 18])}")