LeetCode#300-最长上升子序列
package dp;
/*
300. 最长上升子序列
给定一个无序的整数数组,找到其中最长上升子序列的长度。
示例:
输入: [10,9,2,5,3,7,101,18]
输出: 4
解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。
思路:
动态规划
*/
public class p300 {
public int lengthOfLIS(int[] nums) {
if(nums.length==0||nums==null)return 0;
if(nums.length==1)return 1;
int dp[]=new int[nums.length];
for(int i=0;i<nums.length;i++){
dp[i]=1;
for(int j=0;j<i;j++){
if(nums[i]>nums[j])dp[i]=Math.max(dp[i],dp[j]+1);
}
}
int res=1;
for(int i=0;i<nums.length;i++){
res=Math.max(res,dp[i]);
}
return res;
}
}
运行结果:


浙公网安备 33010602011771号