从输入中查找多数元素

时间:2012-08-29 16:44:20

标签: java algorithm

我能找到多数元素只读取输入而无需添加到数组中吗? 我的代码在大输入时不起作用,数字差异很大。

我发现了自己的错误。有正确的代码:

int n = Integer.parseInt(bin.readLine()); // read number of data
int h = 0; //input data
int count = 1; //counter
int lf = 0; // last top counting
int first = 0; // top counter num

for (int x = 0; x < n; x++) {
    lf = h;
    h = Integer.parseInt(bin.readLine());//read input number
    if (x == 0) {
        first = h;
    }
    if (h == first) {
        count++;
    } else {
        count--;
    }
    if (count == 0) {
        first = lf; 
        count = 1;
    }

1 个答案:

答案 0 :(得分:1)

大输入不应该导致任何问题,你只是假设它是(a)大文件(s?)失败时的问题。

代码看起来或多或少好,但是如果计数器达到零,你必须选择(=设置first到新值) next 元素,而不是前一个。