leetcode第674题,Longest Continuous Increasing Subsequence

第674题,Longest Continuous Increasing Subsequence
题目:
Given an unsorted array of integers, find the length of longest continuous increasing subsequence (subarray).

本题的意思是给一个未排序的数组,求出数组中连续递增的序列的最大长度。
比如:
Input: [2,2,2,2,2]
Output: 1
Explanation: The longest continuous increasing subsequence is [2], its length is 1.

这题的难度比较简单,设置两个变量max_length, lengthCount,从最低索引位开始,依次比较两个数值,如果后一个比前一个大则,lengthCount加一,否则清零,遍历完数组之后便可确定max_length。
源代码如下。

#include<stdio.h>

int findLengthOfLCIS(int* nums,int numSize);

int arr[] = {1,3,5,4,7,8,9,10} ;
int arr1[] = {1,2,1,2,1,2,1,2,1,2,1,1,1,1,1,1,1,1};
int *ptr;

int main(int argc ,char *argv[])
{

    int max_length = 0;
    printf("\r\n********systerm start **************\r\n");

    //test 1 
    printf("test 1,null ptr\r\n ");

    if( 0 == findLengthOfLCIS(ptr,5))
    {
        printf("error \r\n");
    }

    //test 2 
    printf("test 2,lent = 0\r\n ");

    if( 0 == findLengthOfLCIS(arr,0))
    {
        printf("error \r\n");
    }

    //test 3  
    printf("test 3,normal test \r\n ");



    max_length =  findLengthOfLCIS(arr1,15);        
    printf("max length = %d \r\n",max_length);





    printf("\r\n********systerm finish **************\r\n");
    return 1;
} 

int findLengthOfLCIS(int* nums,int numsSize)
{
    int index;
    int max_length = 1;
    int lengthCount = 1;

    if(nums == NULL)
    {
        return 0;
    }

    if(numsSize == 0)
    {
        return 0;
    }

    for(index = 0 ;index < (numsSize - 1); index++)
    {
        if(nums[index+1] > nums[index])
        {
            lengthCount++;
        }
        else 
        {
            if(max_length < lengthCount)
            {
                max_length = lengthCount;
            }

            lengthCount = 1;

        }
    }
    if(max_length < lengthCount)
    {
        max_length = lengthCount;
    }


    return max_length;

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值