最大数,通过测试用例但 WA
Count of Maximum , Passing Test cases but WA
此代码中出现错误,即使它通过了基本测试用例。但是,它仍然给出了错误的答案。
找不到失败的测试用例,Codechef 最大问题计数的解决方案。我认为部分代码导致某些测试用例失败。
谁能帮我找出这段代码中的错误?
#include <bits/stdc++.h>
using namespace std;
int main()
{
int k;
cin >> k;
for (int j = 0; j < k; j++)
{
int n;
cin >> n;
int a[n];
for (int i = 0; i < n; i++) {
cin >> a[i];
}
int maxCount = 0;
int number;
int index = 0;
for (int i = 0; i < n; i++)
{
int count = 0;
for (int l = 0; l < n; l++)
{
if (a[i] == a[l])
{
count++;
if (count > maxCount)
{
maxCount = count;
index = i;
}
if (count == maxCount) {
(a[i] > a[index]) ? number = a[index] : number = a[i];
}
}
}
}
cout << number << " " << maxCount << endl;
}
}
您的 number
变量是多余的。您需要跟踪数组中元素的index
。
也就是说,改变这一行
(a[i] > a[index]) ? number = a[index] : number = a[i];
到
(a[i] > a[index]) ? index = index : index = i;
并打印
std::cout << a[index] << " " << maxCount << std::endl;
此代码中出现错误,即使它通过了基本测试用例。但是,它仍然给出了错误的答案。
找不到失败的测试用例,Codechef 最大问题计数的解决方案。我认为部分代码导致某些测试用例失败。
谁能帮我找出这段代码中的错误?
#include <bits/stdc++.h>
using namespace std;
int main()
{
int k;
cin >> k;
for (int j = 0; j < k; j++)
{
int n;
cin >> n;
int a[n];
for (int i = 0; i < n; i++) {
cin >> a[i];
}
int maxCount = 0;
int number;
int index = 0;
for (int i = 0; i < n; i++)
{
int count = 0;
for (int l = 0; l < n; l++)
{
if (a[i] == a[l])
{
count++;
if (count > maxCount)
{
maxCount = count;
index = i;
}
if (count == maxCount) {
(a[i] > a[index]) ? number = a[index] : number = a[i];
}
}
}
}
cout << number << " " << maxCount << endl;
}
}
您的 number
变量是多余的。您需要跟踪数组中元素的index
。
也就是说,改变这一行
(a[i] > a[index]) ? number = a[index] : number = a[i];
到
(a[i] > a[index]) ? index = index : index = i;
并打印
std::cout << a[index] << " " << maxCount << std::endl;