状態遷移式で、DP []配列を維持する:DPを[I] = Math.max(DP [I]、DP [J] +1)、実装された場合時の状態遷移方程式NUM [J] NUMS [I]>条件を満たさない場合、この時間jをスキップし、動作しません。サイクル間隔(0、I)は、Jです。
//经典的动态规划问题:DP解决。
public int lengthOfLIS1(int[] nums) {
if (nums.length == 0){
return 0;
}
int[] dp = new int[nums.length];
Arrays.fill(dp,1);
int res = 0;
for (int i = 0; i < nums.length; i++) {
for (int j = 0; j < i; j++) {
if (nums[j] < nums[i]){
dp[i] = Math.max(dp[i],dp[j] + 1);
}
}
res = Math.max(res,dp[i]);
}
return res;
}