题解 | #最长上升子序列(一)#

最长上升子序列(一)

http://www.nowcoder.com/practice/5164f38b67f846fb8699e9352695cd2f

class Solution:
    def LIS(self , arr: List[int]) -> int:
        # write code here
        # dp[i]表示包含底i个元素的最大上升子序列的长度
        if not arr:
            return 0
        
        N = len(arr)
        dp = [1 for _ in range(N)]
        ans = 1
        for i in range(1, N):
            for j in range(i):
                if arr[i] > arr[j]:
                    dp[i] = max(dp[i], dp[j]+1)
                    
            ans = max(ans, dp[i])
            
        return ans
        
全部评论

相关推荐

06-05 19:46
已编辑
武汉大学 后端
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务