动态规划。算法复杂度n平方
public class Solution {
public int lengthOfLIS(int[] nums) {
if(nums.length==0)
{
return 0;
}
int record[]=new int[nums.length];
for(int i=0;i<nums.length;i++)
{
int max=0;
for(int j=0;j<i;j++)
{
if(nums[j]<nums[i])
{
max=Math.max(record[j]+1, max);
}
}
record[i]=max;
}
int max=0;
for(int i=0;i<nums.length;i++)
{
max=Math.max(max, record[i]);
}
return max+1;
}
}

本文介绍了一种求解最长递增子序列(LIS)问题的动态规划算法,该算法的时间复杂度为O(n^2),通过记录每个元素作为子序列结尾时的最长递增子序列长度来逐步构建解决方案。
1380

被折叠的 条评论
为什么被折叠?



