2017.9.26
建立一个一维数组 arr[],表示当遍历到这个数时,当前的最长上升子序列。
public class Solution {
/*
* @param nums: An integer array
* @return: The length of LIS (longest increasing subsequence)
*/
public static int longestIncreasingSubsequence(int[] nums) {
// write your code here
int length = nums.length;
if(length <= 1){
return length;
}
int res = 1;
int []arr = new int[length];
arr[0] = 1;
for(int i = 1; i < length; i++){
arr[i] = 1;
for(int j = 0; j < i; j++){
if(nums[i] > nums[j]){
arr[i] = Math.max(arr[i], arr[j]+ 1);
res = Math.max(res, arr[i]);
}
}
}
return res;
}
}