删除一个时找到最长的整数序列

问题描述 投票:0回答:1

我正在解决一个问题,在删除原始序列中最多只有一个值时,我需要找到最长的整数子序列。输出是子序列的长度。

喜欢 输入 2 3 4 5 5 6 4 5 然后 输出 5(因为当你可以删除 5 时,子序列将是 2 3 4 5 6)

喜欢 输入 2 3 4 4 4 5 6 7 然后 输出 3(因为当你可以删除 4 时,子序列将是 2 3 4)

我很抱歉,但我不知道从哪里开始

python cycle
1个回答
0
投票

你可以使用这个python方法来实现这个

def longest_subsequence(seq):
    max_length = 0  
    for i in range(len(seq)):
        subseq_set = set()
        subseq_length = 0  
        remove_count = 0  
        for j in range(i, len(seq)):
            if seq[j] not in subseq_set:
                subseq_set.add(seq[j])
                subseq_length += 1
            else:
                remove_count += 1
            if remove_count > 1:
                break
        max_length = max(max_length, subseq_length)  # Update the maximum length
    return max_length
input1 = [2, 3, 4, 5, 5, 6, 4, 5]
input2 = [2, 3, 4, 4, 4, 5, 6, 7]
output1 = longest_subsequence(input1)
output2 = longest_subsequence(input2)
print("Output 1:", output1) 
print("Output 2:", output2)  
© www.soinside.com 2019 - 2024. All rights reserved.