这篇page是针对leetcode上的300.最长递增子序列所写的。小尼先简单的说明一下这道题的意思,给定一个整数数组nums,我们需要找到其中最长严格递增子序列的长度。其中子序列是由数组派生而来的序列。

小尼简单的分析一下这道题的动态规划五部曲:

1、dp[i]的定义:dp[i]表示i之前包括的以nums[i]结尾最长上升子序列的长度

2、状态转移方程:位置i的最长升序子序列等于j从0到i-1各个位置的最长升序子序列 + 1 的最大值。所以:if (nums[i] > nums[j]) dp[i] = max(dp[i], dp[j] + 1);

3、dp[i]的初始化:根据题目的叙述,对于每一个i,对应的dp[i](即最长上升子序列)其实大小至少都是1

4、确定遍历顺序:根据题目的要求,我们进行遍历的顺序就是从前往后进行对应的遍历

5、推导出dp数组

小尼接下来拉一下这道题的解题代码:

class Solution {public int lengthOfLIS(int[] nums) {int[] dp = new int[nums.length];Arrays.fill(dp,1);for(int i = 0; i < nums.length; i++){for(int j = 0; j < i; j++){if(nums[i] > nums[j]){dp[i] = Math.max(dp[i], dp[j] + 1);}}}int res = 0;for(int i = 0; i < dp.length; i++){res = Math.max(res, dp[i]);}return res;}
}

小尼简单的分析上述代码,我们设置两层for循环进行对应的比较,再次取出最大值。

希望上面的代码和分析可以帮助到小伙伴们~~~

My Ninetieth Page - 最长递增子序列 - By Nicolas相关推荐

  1. 最长递增子序列的两种解法

    以LeetCode-300为例: O(n^2)解法: dp数组表示以i结尾的最长递增子序列的长度 class Solution { public:int lengthOfLIS(vector<i ...

  2. 最长递增子序列问题的求解

    一, 最长递增子序列问题的描述 设L=<a1,a2,-,an>是n个不同的实数的序列,L的递增子序列是这样一个子序列Lin=<aK1,ak2,-,akm>,其中k1<k2 ...

  3. 编程之美2.16 最长递增子序列

          这道题目要求返回一个数字,这个数字代表一个数组中最长的递增子序列,当然,不要求这个序列是连续的,比如,有这样一个数组:{1, 3,5,7, 2, 9},那么这个数组的最长递增子序列就是5, ...

  4. 洛谷P2766-最长递增子序列问题

    chunlvxiong的博客 题目描述: 给定正整数序列x1,...,xn (1≤n≤500). 1.计算其最长递增子序列的长度s. 2.计算从给定的序列中最多可取出多少个长度为s的递增子序列. 3. ...

  5. 最大子序列、最长递增子序列、最长公共子串、最长公共子序列、字符串编辑距离

    最大子序列 最大子序列是要找出由数组成的一维数组中和最大的连续子序列.比如{5,-3,4,2}的最大子序列就是 {5,-3,4,2},它的和是8,达到最大:而 {5,-6,4,2}的最大子序列是{4, ...

  6. 拦截导弹(最长递增子序列)

    题目描述:某国为了防御敌国的导弹袭击,开发出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度.某天,雷达捕捉到敌国的导弹 ...

  7. Java输出数组中最长递增子序列的代码

    下面内容是关于Java输出数组中最长递增子序列的内容,希望对大伙有较大用途. package com.wzs;import java.util.ArrayList; import java.util. ...

  8. 动态规划(最长递增子序列)---最长递增子序列

    最长递增子序列 300. Longest Increasing Subsequence (Medium) 题目描述:   给定一个数组,找到它的最长递增子序列 思路分析:   动态规划思想,定义一个数 ...

  9. 112. Leetcode 673. 最长递增子序列的个数 (动态规划-子序列问题)

    步骤一.确定状态: 确定dp数组及下标含义 dp[i]表示以nums[i]结尾的数组最长递增子序列的长度, count数组, count[i]记 录以nums[i]结尾的数组,最长递增子序列的个数. ...

最新文章

  1. LeetCode简单题之递增顺序搜索树
  2. 对于后端来说,一个项目究竟应该怎么做
  3. C标准中一些预定义的宏,如__FILE__,__func__等
  4. 关于MySQL相关的查看显示信息:
  5. 各种光源(灯)的光谱
  6. golang ide 环境搭建_Golang 入门 : 打造开发环境
  7. VxWorks中Timer机制
  8. 最优化学习笔记(一)预备知识
  9. (计算机组成原理)第三章存储系统-第七节2:页式/段式虚拟存储器
  10. 旅游景区如何利用优惠券提高客单价?
  11. Win10系统打开共享文件提示没有权限使用网络资源怎么处理?
  12. 析取 合取 析取范式 合取范式
  13. quest2 APK破解游戏包安装器 如何安装方法
  14. ITA和意大利荣耀与共,助力蓝衣军团欧洲杯决赛战胜英格兰!
  15. switch 求分段函数
  16. [node.js] Promise中,resolve, reject 之后需不需要 return?
  17. PG数据库内核源码分析——UPDATE
  18. Vue_单页应用VS多页应用
  19. 特斯拉第二季度交付9.52万辆电动汽车创纪录 股价盘后上涨7%
  20. XSS是什么?如何防御?手摸手教你Springboot配置XSS防御,深入代码解析!

热门文章

  1. CodeIgniter中的分页:完整指南
  2. element-ui中的$comfirm点击取消后空格键和回车键依然执行删除操作
  3. 计算机丢失deferrd.dll怎么解决,RdpSaPs.dll
  4. 新化劳动就业计算机学校,湖南新化校
  5. exists 和 not exists的详细解释
  6. Dubins曲线学习笔记及相关思考
  7. 摩托罗拉手机串号查询
  8. 无法创建html包装器,如何防止Markdown将生成的HTML包装在p元素中?/p
  9. linux系统里安装无线网卡驱动
  10. 好怕突然消失, 真的怕吗