给定一个整数序列,找到最长上升子序列(LIS),返回LIS的长度。
运用DP的思想一步步记录每一个数字的最长上升子序列一直到最后一个
int longestIncreasingSubsequence(vector<int> &nums) {
// write your code here
int ans=0;
int dp[1000];
int i,j;
dp[0]=1;
for(i=1;i<nums.size();i++){
int max=0;
for(j=0;j<i;j++){
if(nums[i]>nums[j]&&dp[j]>max){
max=dp[j];
}
}
dp[i]= max+1;
if(ans<dp[i])ans=dp[i];
}
return ans;
}