解题思路:
1,注意初始值都是1,因为字符本身就是一个
2,其实本质就是求最长下降子序列和最长上升子序列
3,因为每一次拦截只能都比前一次下降一些,所以上升有多长,就需要多少套系统。
注意事项:
参考代码:
height = list(map(int,input().split()))#输入导弹飞来的高度
dp = [ 1 for _ in range(len(height))]#求最长下降路径
dp1 = [1 for _ in range(len(height))]#求最长上升路径
for i in range(len(height)):
for j in range(i):
if height[i] <height[j]:
dp[i]=max(dp[i],dp[j]+1)
elif height[i] >height[j]:
dp1[i] = max(dp1[i],dp1[j]+1)
print(max(dp))
print(max(dp1))
0.0分
0 人评分
简单的a+b (C语言代码)浏览:689 |
C语言程序设计教程(第三版)课后习题10.7 (C语言代码)浏览:556 |
十->二进制转换 (C语言代码)浏览:1330 |
母牛的故事 (C语言代码)浏览:739 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:590 |
字符逆序 (C语言代码)浏览:506 |
矩形面积交 (C++代码)浏览:1204 |
数组与指针的问题浏览:760 |
C语言程序设计教程(第三版)课后习题11.1 (C语言代码)浏览:525 |
Quadratic Equation (C语言代码)浏览:1034 |