给定一个无序的整数数组,找到其中最长上升子序列的长度。

示例:

输入: [10,9,2,5,3,7,101,18]
输出: 4
解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。

说明:

  • 可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。
  • 你算法的时间复杂度应该为 O(n2) 。

进阶: 你能将算法的时间复杂度降低到 O(nlog n) 吗?

class Solution {
public:
    int lengthOfLIS(vector<int>& nums) {
        vector<int> dp(nums.size(),1);
        if(nums.size()==0)
            return 0;
        int ret=1;
        for(int i=1;i<nums.size();i++)
        {
            for(int j=0;j<i;j++)
            {
                if(nums[j]<nums[i])
                    dp[i]=max(dp[i],dp[j]+1);
            }
            if(dp[i]>ret)
                ret=dp[i];
        }
        return ret;
    }
};

300.最长上升子序列相关推荐

  1. LeetCode高频题300. 最长递增子序列

    LeetCode高频题300. 最长递增子序列 提示:本题是系列LeetCode的150道高频题,你未来遇到的互联网大厂的笔试和面试考题,基本都是从这上面改编而来的题目 互联网大厂们在公司养了一大批A ...

  2. python【力扣LeetCode算法题库】300 最长上升子序列(动态规划)

    最长上升子序列 给定一个无序的整数数组,找到其中最长上升子序列的长度. 示例: 输入: [10,9,2,5,3,7,101,18] 输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的 ...

  3. 111. Leetcode 300. 最长递增子序列 (动态规划-子序列问题)

    步骤一.确定状态: 确定dp数组及下标含义 dp是长度为len(nums)的数组,dp[i]表示以nums[i]结尾的最长子序列的长度, 这个定义中 nums[i] 必须被选取,且必须是这个子序列的最 ...

  4. Leetcode 300 最长递增子序列 (每日一题 20210803)

    给你一个整数数组 nums ,找到其中最长严格递增子序列的长度.子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序.例如,[3,6,2,7] 是数组 [0,3,1,6,2 ...

  5. LeetCode 300. 最长上升子序列(Longest Increasing Subsequence)

    题目描述 给出一个无序的整形数组,找到最长上升子序列的长度. 例如, 给出 [10, 9, 2, 5, 3, 7, 101, 18], 最长的上升子序列是 [2, 3, 7, 101],因此它的长度是 ...

  6. 找出最具竞争力的子序列_力扣300——最长上升子序列

    这道题主要涉及动态规划,优化时可以考虑贪心算法和二分查找. 原题 给定一个无序的整数数组,找到其中最长上升子序列的长度. 示例: 输入: [10,9,2,5,3,7,101,18]输出: 4 解释: ...

  7. 300. 最长上升子序列

    给定一个无序的整数数组,找到其中最长上升子序列的长度. 示例: 输入: [10,9,2,5,3,7,101,18] 输出: 4  解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4. ...

  8. Leetcode——300. 最长上升子序列

    题目描述:题目链接 给定一个无序的整数数组,找到其中最长上升子序列的长度. 示例: 输入: [10,9,2,5,3,7,101,18] 输出: 4 解释: 最长的上升子序列是 [2,3,7,101], ...

  9. leetcode数组汇总_[LeetCode] 300. 最长上升子序列

    题目链接: https://leetcode-cn.com/problems/longest-increasing-subsequence 难度:中等 通过率:43.0% 题目描述: 给定一个无序的整 ...

  10. leetcode 300. 最长上升子序列

    题目 给定一个无序的整数数组,找到其中最长上升子序列的长度. 示例: 输入: [10,9,2,5,3,7,101,18] 输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4 ...

最新文章

  1. 用TensorFlow基于神经网络实现井字棋(含代码)
  2. MySQL-处理重复数据[20180517]
  3. 我的布尔玛CSS框架之旅
  4. 趣文:舌尖上的程序猿
  5. 【渝粤教育】广东开放大学 网络编程 形成性考核 (39)
  6. 团队个人每天详细计划汇总
  7. 菜鸟译文(二)——使用Java泛型构造模板方法模式
  8. matlab quiver 箭头颜色,matlab – quiver3箭头颜色对应大小
  9. RoR scaffold
  10. 迁移学习:他山之石,可以攻玉【VALSE Webinar】Panel实录
  11. STM8S003F3 内部时钟初始化以及定时器做延时的使用
  12. 软件测试的基础知识点
  13. [编译原理课设] 自动机的状态转换图表示
  14. 高精度反正切函数的实现
  15. uniapp和vue的区别
  16. Android10无法访问根目录文件解决
  17. 2021最新python爬取12306列车信息自动抢票并自动识别验证码
  18. 这些外企,还在招人!
  19. B2B2C简易流程图
  20. 代号Pie!Android 9.0那些开发者必须知道的事

热门文章

  1. 【转】mysql多表关联查询
  2. js中去除字符串中所有的html标签
  3. ubuntu 18.04安装搜狗输入法
  4. 进入第一个Android应用界面
  5. 娱乐篇第十期:互联网的事情you意思(十)
  6. 批处理处理oracle数据库脚本导入
  7. 一步一步理解拖拽Drag(一)
  8. Myeclipse6.0安装svn插件
  9. Java swing实现一组图片自动轮播
  10. 禁止文本框输入空格和回车