32 动态规划求最长上升子序列

问题描述:给定一个无序的整数数组,找到其中最长上升子序列的长度;

动态规划求解思路定义一维dp[i]表示以i为结尾的最长上升子序列长度,最后求得其中最值即可

public int getLongestSub(int []nums)
{
int []dp=new int[nums.length];
dp[0]=1;
for(int i=1;inums[i-1])
dp[i]=dp[i-1]+1;
else
{
dp[i]=1;
}
}
PriorityQueuemaxHeap=new PriorityQueue<>(Collections.reverseOrder());
for(int num:dp)
{
maxheap.add(num);
}
​​​​​​​return maxHeap.peek();
}

你可能感兴趣的:(JAVA刷题500道,动态规划,算法,数据结构,java)