解题思路:
注意事项:
由于dp在某些情况下可能不存在递增子序列,所以在判断最大值时需要手动加入一个“0”元素防止出现max方法内无参数的报错。
参考代码:
n = int(input()) nums = list(map(int, input().split())) dp = [1 for _ in range(n)] for i in range(1, n): dp[i] = max([0] + [dp[j] for j in range(i) if nums[j] <= nums[i]]) + 1 print(max(dp))
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:553 |
买不到的数目 (C++代码)浏览:909 |
C语言程序设计教程(第三版)课后习题10.7 (C语言代码)浏览:998 |
简单的a+b (C++语言代码)浏览:895 |
妹子杀手的故事 (C语言代码)浏览:1297 |
C语言程序设计教程(第三版)课后习题10.7 (C语言代码)浏览:568 |
A+B for Input-Output Practice (V) (C语言代码)浏览:497 |
Tom数 (C语言代码)浏览:758 |
IP判断 (C语言代码)浏览:592 |
字符串比较 (C语言代码)浏览:770 |