2

配列に追加せずに入力を読み取るだけの多数要素を見つけることはできますか? 私のコードは、数値の大きな違いがあるため、大きな入力では機能しません。

私は自分の間違いを見つけます。そこに正しいコード:

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;
    }
4

1 に答える 1

1

大きな入力によって問題が発生することはありません。(a) 大きなファイルで失敗したときにそれが問題であると想定しただ​​けです。

コードは多かれ少なかれ問題ないように見えますが、カウンターがゼロに達した場合、前の要素ではなく次のfirst要素を選択 (=新しい値に設定) する必要があります。

于 2012-08-29T17:26:41.253 に答える