不是各位大哥,为什么18分
查看原帖
不是各位大哥,为什么18分
1216518
ErgouTree楼主2023/12/24 15:17
n = int(input())
day_price = [int(x) for x in input().split()]
dp = [1] * n

for i in range(n):
    for j in range(i):
        if day_price[i] < day_price[j]:
            dp[i] = max(dp[i],dp[j] + 1)

all_subsequences = []
for i in range(n):
    seq = [day_price[i]]
    for j in range(i-1,-1,-1):
        if day_price[j] > day_price[i] and dp[j] == dp[i]-1:
            seq.append(day_price[j])
            i = j
    all_subsequences.append(seq[::-1])

#统计最长下降子数列中的元素个数
length = [len(sublist) for sublist in all_subsequences]
max_length = max(length)
count_max_length_lists = length.count(max_length)

result = []
result.append(max_length)
result.append(count_max_length_lists)
for x in result:
    print(x,end=" ")

而且在第一个检测输入里面为什么是三行啊,题里面说了不是两行吗。 还有为什么样例输出是4 2不是4 1,不是只有一个4元素的最大下降数列吗

2023/12/24 15:17
加载中...