学做视频的网站百度官网优化
动态规划:
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;i<nums.length;i++){//初始化每一个下标为i的dp数组dp[i]=1;//用for循环来给dp【i】进行重新赋值。for(int j=0;j<i;j++){//判断是否满足递增条件if(nums[i]>nums[j]){dp[i]=Math.max(dp[i],dp[j]+1);}//更新最长的子序列长度。leng=Math.max(dp[i],leng);}}return leng;}
}