有关python,序列,输入和输出的作业

时间:2019-05-30 19:09:13

标签: python python-3.x

在这个问题中,有一个序列,每行有一个数字,即:

1
1
4
3
4
3
5
3

给定该序列,代码需要计算并打印可以选择的最大数量的序列,而无需选择在连续序列中具有两个相等的数字(例如示例中的1),并且选择可以只有2个不同的数字。 在给定的示例中,顺序为:4、3、4、3、3。

第一个输入(N)将是序列的大小(示例中为8),其他输入(Vi)将是一个数字。 限制:1 <= N <= 500和1 <= Vi <= N

输出将是一个整数,表示序列中的最大数字。

example 1:
input:
1
1
output:
1

example 2:
input:
12
3
2
5
2
10
4
4
7
12
2
8
10

output: 
4

对做事没有想法,想看看解决办法

1 个答案:

答案 0 :(得分:0)

您可以使用猫和老鼠策略在列表(序列)中前进,同时跟踪猫和老鼠之间的值的subRange。

每次前进鼠标时,都需要检查其新位置的值是否满足subRange要求(基于从cat到鼠标的值)。如果不是,则使猫前进,并从subRange中删除值,直到使subRange有效的位置(从猫到鼠标)。

当鼠标到达末尾时,遇到的最长的subRange是您要寻找的结果(因此,您需要跟踪最长的subRange)。