改了好几次了,也用了不止一个方法,总是TLE
by chmusk @ 2018-12-23 15:42:50
...C++党表示看不懂...
by Jelly_Goat @ 2018-12-23 15:50:13
@[Jelly_Goat](/space/show?uid=122927) 这题java只用一层循环还是TLE,,不解啊·
by chmusk @ 2018-12-23 15:52:27
...说说我的思路:
输入的时候直接判断就过了...
不知道你是什么情况...
稍等我发一个我的代码(c++)
@[chmusk](/space/show?uid=124178)
by Jelly_Goat @ 2018-12-23 16:20:43
```cpp
#include <iostream>
#include <queue>
using namespace std;
priority_queue<int>qwq;
//大根堆
int main()
{
int n,input,former,count=1;
cin>>n;
cin>>former;
for (int i=1;i<n;i++)
{
cin>>input;
if (input>former){count++;former=input;}
else{qwq.push(count);former=input;count=1;}
}
qwq.push(count);
cout<<qwq.top();//输出最大的
return 0;
}
```
使用堆排序(优先队列),
直接输出顶端的数字就可以了(qwq.top())。
你的时间复杂度大概是O(2n),
利用这个方法
可以优化到O(n+log(n))。
然而Java的话,打个快排吧,
将count储存在一个long int数组里?
试试吧同志...
by Jelly_Goat @ 2018-12-23 16:31:58
@[chmusk](/space/show?uid=124178)
by Jelly_Goat @ 2018-12-23 16:32:08
emmm...不是快排,是遍历...说错了不好意思
by Jelly_Goat @ 2018-12-23 16:33:07
@[Jelly_Goat](/space/show?uid=122927) 好的,谢谢啦
by chmusk @ 2018-12-23 16:35:14
亲测AC
by Jelly_Goat @ 2018-12-23 16:37:00
想看题解的、看博客的同学们请进入传送门:
https://www.luogu.org/blog/jelly123/solution-p1567
by Jelly_Goat @ 2018-12-23 16:44:59