问题描述
- acm题,测试很多数据都没错,一提交就WA 1C
- /*
Judge InfoMemory Limit: 32768KBCase Time Limit: 1000MSTime Limit: 1000MSJudger: 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.
InputFirst 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 Input3
3 1 1 1
3 1 2 3
4 4 3 2 1Sample Output
1
3
4*/
#include
int main()
{
int b[10000];
int max;
int shengjiang;//记录升序和降序的长度
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(""%dn""max);}return 0;
}
解决方案
算法错了。DP入门题目。请百度动态规划,参考:
http://blog.csdn.net/non_cease/article/details/7307835
解决方案二:
没能处理好 strictly increasing or strictly decreasing 中的 strictly
二者相等,应该也是 初始化为1
解决方案三:
路过水一贴,O(∩_∩)O。
时间: 2024-11-02 02:36:03