力扣:300. 最长递增子序列

动态规划:

1. 先定义dp数组来表示在下标为i时最长递增子序列,先初始化一下每个下标的值为dp【i】=1。同时我们要判断在下标i之前的最长的递增子序列为多少,在判断当前的下标i是否满足递增的条件满足的话就进行dp【i】的重新赋值。之后要更新接受的最长递增序列的长度。

class Solution {
    public int lengthOfLIS(int[] nums) {
        if(nums.length==1){
            return 1;
        }
        //定义dp数组来表示在下表为i时最长递增子序列
        int[] dp=new int [nums.length];
        //初始化dp数组dp【0】的值
        dp[0]=1;
        //接收最长的递增子序列
        int leng=0;
        //for循环遍历
        for(int i=1;inums[j]){
             dp[i]=Math.max(dp[i],dp[j]+1);
                }
                //更新最长的子序列长度。
                leng=Math.max(dp[i],leng);
            }
        }
        return leng;
    }
}

你可能感兴趣的:(动态规划,leetcode,算法)