问题描述
给定一个整数序列,找到最长上升子序列(LIS),返回LIS的长度。
很简单。
public class Solution {
/**
* @param nums: The integer array
* @return: The length of LIS (longest increasing subsequence)
*/
public int longestIncreasingSubsequence(int[] nums) {
if(nums.length==0)
return 0;
int max=0;
int n=nums.length;
int[] dp=new int[n];
for(int i=0;i<n;i++){
dp[i]=1;
}
for(int i=1;i<n;i++){
for(int j=0;j<i;j++){
if(nums[i]>nums[j])
dp[i]=Math.max(dp[i],dp[j]+1);
}
}
int result=0;
for(int i=0;i<n;i++){
result=Math.max(result,dp[i]);
}
return result;
}
}