最大数量,通过测试用例但WA

时间:2018-12-06 13:03:27

标签: c++

此代码中出现错误,通过了基本测试用例。但答案仍然错误。无法找到失败的测试用例,最大问题的解决方案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;
    }
}

1 个答案:

答案 0 :(得分:1)

您的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;