approach 1:动态规划
O(n2)时间复杂度
int lengthOfLIS(int* nums, int numsSize) {
int i,j;
int *dp=malloc(sizeof(int)*numsSize);
int res=0;
for(i=0;i<numsSize;i++){
dp[i]=1;
}
for(i=0;i<numsSize;i++){
for(j=0;j<i;j++){
if(nums[i]>nums[j]&&dp[j]+1>dp[i])
dp[i]=dp[j]+1;
}
if(dp[i]>res)
res=dp[i];
}
return res;
}
approach 2:结合二分查找的动态规划
O(n logn)复杂度解法