llllmz

导航

376. 摆动序列c

int max(int i,int j){
    if(i>j) return i;
    return j;
}

int wiggleMaxLength(int* nums, int numsSize){
    int** dp=(int**)malloc(sizeof(int*)*numsSize);
    for(int i=0;i<numsSize;i++) dp[i]=(int*)malloc(sizeof(int)*2);
    dp[0][0]=1,dp[0][1]=1;
    if(numsSize==1) return 1;
    for(int i=1;i<numsSize;i++){
        if(nums[i]==nums[i-1]){
            dp[i][0]=dp[i-1][0];
            dp[i][1]=dp[i-1][1];
        }else if(nums[i]>nums[i-1]){
            dp[i][1]=dp[i-1][0]+1;
            dp[i][0]=dp[i-1][0];
        }else{
            dp[i][0]=dp[i-1][1]+1;
            dp[i][1]=dp[i-1][1];
        }
    }
    return max(dp[numsSize-1][0],dp[numsSize-1][1]);
}

posted on 2024-03-16 15:40  神奇的萝卜丝  阅读(16)  评论(0)    收藏  举报