acm题,测试很多数据都没错,一提交就WA

/*
Judge Info

Memory Limit: 32768KB
Case Time Limit: 1000MS
Time Limit: 1000MS
Judger: Number Only Judger 

Description

We are given a integer sequence, your job is find the length of the longest contiguous subsequence that is strictly increasing or strictly decreasing.
Input

First number T (1<=T<=100), represent how many test cases.
For each test case the first number is N (1=< N <= 50).
Then N, positive integers are followed, all of them are less than 101. 

Output

For each test case output the answer in one line.
Sample Input

3
3 1 1 1
3 1 2 3
4 4 3 2 1

Sample Output

1
3
4

*/

#include

int main()

{
int b[10000];
int max;
int sheng,jiang;//记录升序和降序的长度
int T;
int N;
int i;
scanf("%d",&T);
while(T--)
{
sheng=1;jiang=1;max=1;

    scanf("%d",&N);

    for(i=0;i<N;i++)
        scanf("%d",&b[i]);

    for(i=0;i<N-1;i++)
    {
        if(b[i]<b[i+1]) 
        {
            sheng++;
            if(sheng>max)
                max=sheng;

            jiang=1;
        }
        else if(b[i]>b[i+1]) 
        {
            jiang++;
            if(jiang>max)
                max=jiang;

            sheng=1;
        }
    }

    printf("%d\n",max);
}
return 0;

}

算法错了。DP入门题目。请百度动态规划,参考:
http://blog.csdn.net/non_cease/article/details/7307835

没能处理好 strictly increasing or strictly decreasing 中的 strictly
二者相等,应该也是 初始化为1

路过水一贴,O(∩_∩)O。

strictly初始化为1