【发布时间】:2023-03-25 17:47:01
【问题描述】:
我试图从 google kickstart Round D 2020 中解决 record breaker problem 我在 C++ 中提交了以下代码:
#include <bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int testcase;
cin>>testcase;
int t=1;
while(t<=testcase){
int n;
cin>>n;
int arr[n+1];
for(int i=0;i<n;i++)
cin>>arr[i];
arr[n]=0;
int prev=0,ans=0;
for(int i=0;i<n;i++){
if(arr[i]>prev && arr[i]>arr[i+1]){
ans++;
}
prev=max(prev,arr[i]);
}
cout<<"Case #"<<t<<": "<<ans<<endl;
t++;
}
return 0;
}
它通过了示例测试集,我还尝试在来自不同文章和网站的某些边缘案例上进行检查,但由于它没有通过测试集 1,因此仍然无法找到错误。 请帮忙。
【问题讨论】:
-
int arr[n+1];: 可变长度数组不是 C++ 标准。尝试使用向量,看看是否能解决问题 -
我的意思是它通过了示例测试用例但没有通过测试集1
-
另外,您应该编辑您的问题以使其独立。它缺少重现错误所需的输入、该输入的预期输出和实际输出。如果有问题的案例是硬编码的,这样就不需要输入了,那就更好了。
标签: c++ arrays algorithm optimization