我正在解决一个问题,在删除原始序列中最多只有一个值时,我需要找到最长的整数子序列。输出是子序列的长度。
喜欢 输入 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方法来实现这个
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)