最长上升子序列-python

简介: 最长上升子序列-python

大佬们在leetcode的讲解—— 题目


题目描述


小明是蓝桥王国的骑士,他喜欢不断突破自我。

这天蓝桥国王给他安排了 N 个对手,他们的战力值分别为a1,a2,...,an,且按顺序阻挡在小明的前方。对于这些对手小明可以选择挑战,也可以选择避战。

身为高傲的骑士,小明从不走回头路,且只愿意挑战战力值越来越高的对手。

请你算算小明最多会挑战多少名对手。


输入描述


输入第一行包含一个整数 N,表示对手的个数。

第二行包含 NN 个整数 a1,a2,...,an,分别表示对手的战力值。

1≤N≤3×10^5,1≤ai≤10^9。


输出描述


输出一行整数表示答案。


输入输出样例


示例 1

输入

1. 6
2. 1 4 2 2 5 6

输出

4

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M

思路


采用动态规划的方法,dp[i]表示选择nums[i],并且以nums[i]结尾的最长上升子序列的长度。

设计两层循环,i:1~nums.lengthj:0~i,如果nums[i] > nums[j],则构成一个上升对,dp[i]就从dp[i], dp[j]+1两个种选择较大者,最后返回dp数组总的最大数


代码


1. def lengthOfLIS(nums):
2.     if not nums:
3.         return 0
4.     dp = []
5.     for i in range(len(nums)):
6.         dp.append(1)
7.         for j in range(i):
8.             if nums[i] > nums[j]:
9.                 dp[i] = max(dp[i], dp[j] + 1)
10.     return max(dp)
11. 
12. n=input()
13. nums=list(map(int,input().split()))
14. s=lengthOfLIS(nums)
15. print(s)
目录
相关文章
|
5月前
|
Python
【Leetcode刷题Python】376. 摆动序列
文章提供了解决LeetCode "摆动序列" 问题的Python实现代码,通过遍历整数数组并使用两个变量 down 和 up 来记录正差和负差摆动序列的长度,最终返回最长摆动子序列的长度。
50 0
|
5月前
|
存储 算法 数据挖掘
【2023年中国高校大数据挑战赛 】赛题 B DNA 存储中的序列聚类与比对 Python实现
本文介绍了2023年中国高校大数据挑战赛赛题B的Python实现方法,该赛题涉及DNA存储技术中的序列聚类与比对问题,包括错误率分析、序列聚类、拷贝数分布图的绘制以及比对模型的开发。
112 2
【2023年中国高校大数据挑战赛 】赛题 B DNA 存储中的序列聚类与比对 Python实现
|
4月前
|
机器学习/深度学习 数据采集 算法
时间序列结构变化分析:Python实现时间序列变化点检测
在时间序列分析和预测中,准确检测结构变化至关重要。新出现的分布模式往往会导致历史数据失去代表性,进而影响基于这些数据训练的模型的有效性。
376 1
|
5月前
|
机器学习/深度学习 算法 数据挖掘
6种有效的时间序列数据特征工程技术(使用Python)
在本文中,我们将探讨使用日期时间列提取有用信息的各种特征工程技术。
203 1
|
4月前
|
机器学习/深度学习 索引 Python
python之序列
python之序列
160 59
|
3月前
|
存储 编译器 索引
Python 序列类型(2)
【10月更文挑战第8天】
Python 序列类型(2)
|
3月前
|
存储 C++ 索引
Python 序列类型(1)
【10月更文挑战第8天】
|
5月前
|
机器学习/深度学习 Python
时间序列特征提取:从理论到Python代码实践
时间序列是一种特殊的存在。这意味着你对表格数据或图像进行的许多转换/操作/处理技术对于时间序列来说可能根本不起作用。
90 1
时间序列特征提取:从理论到Python代码实践
|
5月前
|
机器学习/深度学习 分布式计算 大数据
几行 Python 代码就可以提取数百个时间序列特征
几行 Python 代码就可以提取数百个时间序列特征
95 9
|
5月前
|
机器学习/深度学习 数据采集 算法
【优秀python算法毕设】基于python时间序列模型分析气温变化趋势的设计与实现
本文介绍了一个基于Python的时间序列模型,用于分析和预测2021-2022年重庆地区的气温变化趋势,通过ARIMA和LSTM模型的应用,揭示了气温的季节性和趋势性变化,并提供了对未来气温变化的预测,有助于气象预报和相关决策制定。
168 1
【优秀python算法毕设】基于python时间序列模型分析气温变化趋势的设计与实现