解题思路:动态规划
注意事项:ls[i]>=ls[j],判断此位数比前面哪一位数大,dp[j]+1>dp[i],判断升序排列数是否需要增加,若都符合,此位数的升序排列数要比之前最大的升序排列数加1
参考代码:
n = int(input())
ls = list(map(int,input().split()))
dp=[1 for i in range(n)]
for i in range(1,n):
for j in range(0,i):
if ls[i]>=ls[j] and dp[j]+1>dp[i]:
dp[i] = dp[j]+1
print(max(dp))
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题5.8 (C语言代码)浏览:1324 |
循环入门练习6 (C语言代码)浏览:1058 |
C语言程序设计教程(第三版)课后习题12.1 (C语言代码)浏览:689 |
小O的图案 (C语言代码)浏览:980 |
C语言训练-排序问题<1> (C语言代码)浏览:369 |
小九九 (C++代码)简单粗暴,直接输出浏览:683 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:456 |
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:549 |
Tom数 (Java代码)浏览:617 |
test 2浏览:715 |