/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 给定数组的最长严格上升子序列的长度。
 * @param arr int整型一维数组 给定的数组
 * @param arrLen int arr数组长度
 * @return int整型
 */
 int max(int a,int b)
 {
    return a>b?a:b;
 }
int LIS(int* arr, int arrLen ) {
    // write code here
    if(arrLen==0) return 0;
    int dp[1005]={0},m=0;
    for(int i=1;i<=arrLen;i++)
    {
        for(int j=1;j<i;j++)//取前面所有比它小的元素+1的最大值
        {
            if(arr[j-1]<arr[i-1])
            {
                dp[i]=max(dp[i],dp[j]+1);
            }
        }
        if(dp[i]==0) dp[i]=1;//代表前面没有更小的元素,将其元素设为一个子序列的开头
        if(dp[i]>m) m=dp[i];
    }
    return m;
}