求助 最长相等子序列长度 Python
7-4 最长相等子序列长度给定一个有n个元素的整数数组b,b中连续的相等元素构成的子序列称为平台。设计一个算法求b中最长平台的长度。
输入格式:
第一行为一个数字m,表示下面有m组数据,每组数据包括2行或者1行,n>0时,每组数据中的第一行表示数组的长度n(n<=20),第二行表示数组的所有元素;空表n=0时,只有一行输入。
输出格式:
输出最长平台的长度。(注:当n=0时,输出0。)
输入样例:
在这里给出一组输入。例如:
2
8
11 3 8 8 8 8 8 7
10
11 3 3 25 7 8 8 8 8 8
输出样例:
在这里给出相应的输出。例如:
5
5 本帖最后由 逃兵 于 2020-12-22 17:00 编辑
def showmax(lt):
index1 = 0 #记录出现次数最多的元素下标
max = 0 #记录最大的元素出现次数
for i in range(len(lt)):
flag = 0 #记录每一个元素出现的次数
for j in range(i+1,len(lt)): #遍历i之后的元素下标
if lt == lt:
flag += 1 #每当发现与自己相同的元素,flag+1
if flag > max: #如果此时元素出现的次数大于最大值,记录此时元素的下标
max = flag
index1 = i
return lt #返回出现最多的元素
m=int(input())
lst=[]
while m:
n = int(input())
if n !=0:
lstn =
else:
lstn = []
lst.append(lstn)
m-=1
for i in lst:
try:
print(showmax(i))
except:
pass
逃兵 发表于 2020-12-22 16:55
大佬 要返回的不是出现最多的元素 是该元素的次数哦(输出格式:输出最长平台的长度。) 欧德奈瑞 发表于 2020-12-23 21:24
大佬 要返回的不是出现最多的元素 是该元素的次数哦(输出格式:输出最长平台的长度。)
def showmax(lt):
index1 = 0 #记录出现次数最多的元素下标
max = 0 #记录最大的元素出现次数
for i in range(len(lt)):
flag = 0 #记录每一个元素出现的次数
for j in range(i+1,len(lt)): #遍历i之后的元素下标
if lt == lt:
flag += 1 #每当发现与自己相同的元素,flag+1
if flag > max: #如果此时元素出现的次数大于最大值,记录此时元素的下标
max = flag
index1 = i
return lt.count(lt) #返回出现最多的元素的次数
m=int(input())
lst=[]
while m:
n = int(input())
if n !=0:
lstn =
else:
lstn = []
lst.append(lstn)
m-=1
for i in lst:
try:
print(showmax(i))
except:
pass
感谢大佬的帮助{:10_297:}
页:
[1]