Google Kickstart 2020 轮 D- 破纪录者问题
Posted
技术标签:
【中文标题】Google Kickstart 2020 轮 D- 破纪录者问题【英文标题】:Google Kickstart 2020 round D- Record Breaker Question 【发布时间】:2021-07-07 10:45:13 【问题描述】:我的解决方案是否适用于所有测试用例。 这是 google kickstart 2020 round d 问题。 对于 4 个测试用例,我的输出是正确的。 时间复杂度也是 O(n)。
#include <iostream>
using namespace std;
int main()
int n;
cin>>n;
int a[n+1];
a[n] = -1;
for(int i = 0; i < n; i++)
cin>>a[i];
int max = 0;
int ans = 0;
if(a[1] < a[max])
ans = 1;
for(int i = 1; i < n; i++)
if(a[i] > a[max])
if(a[i] > a[i+1])
max = i;
ans++;
cout<<ans<<endl;
return 0;
【问题讨论】:
int a[n+1];
是一个可变长度数组。它不在标准 C++ 中。您应该考虑改用std::vector
。
除此之外,还有其他问题。
对于可以使用一些改进的工作代码codereview.stackexchange.com是正确的地方问
【参考方案1】:
问题应该是:
Record Breaker - Kick Start
你的代码是错误的,因为它输出1
作为输入
3
1 2 2
而答案应该是0
。
问题在于,仅当一天的数字大于第二天的数字时,您才更新最大值。
【讨论】:
以上是关于Google Kickstart 2020 轮 D- 破纪录者问题的主要内容,如果未能解决你的问题,请参考以下文章
Google Kickstart 2020 Round A 分配问题
kickstart 谷歌 D 2020 年 7 月 12 日 13: 00 - 16: 00
Google Kickstart 2018,测试用例中的回合错误