2018年2月25日 星期日

[673] Number of Longest Increasing Subsequence

衍伸題來了~(比樓下)
其實我還是覺得我不太懂XD
不過算了好了 XD.............

673. Number of Longest Increasing Subsequence
int findNumberOfLIS(int* nums, int numsSize) {
    int i , j;
    int *len = malloc(sizeof(int)*numsSize);
    int *count = malloc(sizeof(int)*numsSize);
    int max = 0, max_count=0;


    for(i=0;i<numsSize;i++)
    {
        len[i] = 1;
        count[i] = 1;
        for(j=0;j<i;j++)
        {
            if(nums[i]>nums[j])
            {
                if (len[i]==len[j]+1)
                    count[i]+=count[j];
                if (len[i] < len[j]+1)
                {
                    len[i] = len[j]+1;  
                    count[i] = count [j];
                }
            }
        }    
        if (len[i] > max)
            max = len[i];

    }
    for(i=0;i<numsSize;i++)
        if(max == len[i])
            max_count += count[i];
    return max_count;
}

沒有留言:

張貼留言