90分,dalao求调

P1567 统计天数

~~头像及名字好评。~~ 把 `maxi=max(maxi,ans);` 移到上面的 `if` 的第二行中: ```cpp #include<bits/stdc++.h> using namespace std; int n,a[1000005],maxi=-1e9,ans=1; int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } for(int i=2;i<=n;i++){ if(a[i]>a[i-1]){ ans++; maxi=max(maxi,ans);}//把下面的移上来 else{ ans=1; } } cout<<maxi; return 0; } ```
by yuchenren @ 2022-01-13 15:33:32


@[FUUUUUUUUUCCCCCKKKKK](/user/391527)
by yuchenren @ 2022-01-13 15:34:55


谢谢大佬已A
by 违规用户名S42u&!u& @ 2022-01-13 15:35:01


@[任宇宸](/user/250291) 为啥要这么改呢
by Eternal_wzj @ 2022-03-05 10:02:31


谢谢大佬!顺便解答一下上面那个同学问的为什么,就是防止最长升序子序列是包含最后一个元素的,此时for循环已经跑完了,但是else还是无法成立、而无法让这个ans存到maxi里去。所以最好的解决方法就是一边数一边比一边存(多了几次比较而已)
by tunan_123 @ 2022-06-03 18:33:23


|