博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode dynamic programming
阅读量:6213 次
发布时间:2019-06-21

本文共 961 字,大约阅读时间需要 3 分钟。

300. Longest Increasing Subsequence

Question

Given an unsorted array of integers, find the length of longest increasing subsequence.

For example,

Given [10, 9, 2, 5, 3, 7, 101, 18],
The longest increasing subsequence is [2, 3, 7, 101], therefore the length is 4. Note that there may be more than one LIS combination, it is only necessary for you to return the length.

Your algorithm should run in O(n2) complexity.

Follow up: Could you improve it to O(n log n) time complexity?

Solution

dp[i] means the length of an increase sequence that includes nums[i], and it must equals a previous dp value add one which reaches the max.

class Solution(object):    def lengthOfLIS(self, nums):        """        :type nums: List[int]        :rtype: int        """        dp = [1]*len(nums)        for i in xrange(len(nums)):            for y in xrange(i):                if nums[i] >nums[j]:                    dp[i] = max(dp[i],dp[j]+1)        return max(dp) if dp else 0

转载地址:http://ledja.baihongyu.com/

你可能感兴趣的文章
前端埋点统计方案思考
查看>>
RxSwift 基础
查看>>
indexOf封装,查找数组里面是否有这个值(function hasVal(){})?
查看>>
『中级篇』RoutingMesh之Ingress负载均衡(48)
查看>>
分布式计算入门知识
查看>>
10-C++远征之模板篇-学习笔记
查看>>
Android中Button调用getText()的思考
查看>>
Vue之axios请求踩坑记---post请求
查看>>
React-redux基础
查看>>
函数&作用域提升
查看>>
前端常用设计模式(1)--装饰器(decorator)
查看>>
SAP S/4HANA生产订单创建时使用的工厂数据是从什么地方带出来的
查看>>
《2018年云上挖矿态势分析报告》发布,非Web类应用安全风险需重点关注
查看>>
原生js实现全屏滚动--fullPage
查看>>
JavaScript 是如何工作的:模块的构建以及对应的打包工具
查看>>
以太坊是什么?
查看>>
JavaScript对象的几种创建方式?
查看>>
什么是Javascript函数节流?
查看>>
ogg转mp3格式的详情教程
查看>>
腾讯 Tars-Go 服务获取自定义模版(配置)值
查看>>