手机版 | 登陆 | 注册 | 留言 | 设首页 | 加收藏
当前位置: 网站首页 > python教程 > 文章 当前位置: python教程 > 文章

python题目集pta有什么软件可以搜python题目答案python题目网站

时间:2022-08-02    点击: 次    来源:网络    作者:佚名 - 小 + 大

python题目集pta有什么软件可以搜python题目答案python题目网站


下载地址

https://share.weiyun.com/OvviwGnZ


资料目录
Python练习集100题
100道Python面试题
Python100经典练习题
Python经典题目100道题
Python题库(已收录100道真题)
Python100例视频讲解课程
菜鸟教程Python教程100例
130道python练习题,涵盖基础内容的方方面面
Python考试题复习知识点试卷试题
PYTHON测试题和答案
python第一阶段考试题
Python经典面试题和答案解析
python期末考试复习试卷
python习题集大全(附答案解析)
老男孩Python全栈7期练习题(面试真题模拟)
尚观python第一阶段考试(面试真题模拟)
《Python程序设计基础与应用》习题答案
《Python快速编程入门》——课后题答案
Python编程基础张健 , 张良均课后习题及答案
Python程序设计基础及实践(慕课版)郭炜习题答案
Python程序设计基础习题答案与分析
python基础试题(含答案)

举例

最长上升子序列
题目要求
一个元素为数值的列表,找到其最长上升子序列的长度。
比如 [5, 4, 1, 2, 5, 3], 最长上升子序列是 [1, 2, 3], 长度为3。
思路分析
假设列表lst长度为k,创建一个长度同样为k的列表dp,dp内所有元素初始化为1,dp[i]代表以lst[i]结尾的最长上升子序列长度,这其实是一个假设,对于单个元素来说,也是列表的子序列,而且是上升的。
对于lst[0]来说,它自己就是一个子序列,单个元素,也可以视为上升的,因此,dp[0] 等于1,真实的表示了以lst[0]结尾的最长上升子序列的长度,但对于lst[j], j >0 来说,dp[j]就目前而言,还不能准确表示以lst[j]结尾的最长上升子序列的长度,不过没关系,计算dp[1]时,我们可以借助dp[0],计算dp[2]时,可以借助dp[0],dp[1],计算dp[j]时,可以借助dp[0]到dp[j-1]。
计算dp[j]时,如何借助之前已经计算出来的dp[0]到dp[j-1]呢,太简单了,假设 0<=i<j, 如果lst[i] < lst[j], 那么dp[j] = dp[i] + 1,dp[i]是已知的,lst[i] 小于lst[j], 这个上升子序列加入了lst[j],自然长度加1。
示例代码
# coding=utf-8


def get_long_incr_lst(lst):
    if len(lst) == 0:
        return 0
    dp = [1 for item in lst]
    max_incr = 1
    # 为什么要从1 开始呢,因为dp[0]是固定的,一定是1
    for j in range(1, len(lst)):
        for i in range(j):
            if lst[i] < lst[j]:
                # 以lst[i]结尾的上升子序列里可以加入lst[j]
                dp[j] = max(dp[j], dp[i] + 1)
        max_incr = max(dp[j], max_incr)

    return max_incr


print get_long_incr_lst([5, 4, 1, 2, 5, 3])

上一篇:python题目训练计算机二级python题目分值python题目怎么搜答案

下一篇:没有了

推荐阅读
声明 | 联系我们 | 关于我们
备案ICP编号  |   QQ:2151239526  |  地址:北京市东城区  |  电话:16605168200  |