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

最长上升子序列(一)

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

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 给定数组的最长严格上升子序列的长度。
     * @param arr int整型一维数组 给定的数组
     * @return int整型
     */
  /**
  dp[i]:以i结尾的最长上升子序列
  状态转移: 看i之前的元素,看是否可以拼接
  初始值:全填1
  **/
    public int LIS (int[] arr) {
        // write code here
        int n= arr.length;
        if(n==0)return 0;
        int[] dp=new int[n+1]; //以i结尾的最长上升子序列
        Arrays.fill(dp,1);
        int m=1;
        for(int i=2;i<=n;i++){
           for(int j=0;j<i-1;j++){
             if(arr[i-1]>arr[j]){
                dp[i]=Math.max(dp[i],dp[j+1]+1);
                if(dp[i]>m){
                    m=dp[i]; //记录最大值
                }
             }
           }
        }
        return m;
    }
}

全部评论

相关推荐

05-23 19:33
重庆大学 Java
只学了传统后端,马上去后端实习了,在想要不要学习agent开发相关的。27秋招和26相比难度如何?
我连备胎都不是却还在...:就暑期实习而言,大厂官宣hc 比 26 多,但是我观察看应该低于 26 的,估计秋招也不简单
点赞 评论 收藏
分享
点赞 评论 收藏
分享
一只代码牛:应该不是你的问题,我感觉应该是最近不缺人
我的求职进度条
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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