-1

たとえば、インデックス 0 をインデックス 1、2、および 3 と比較したい場合、どうすればそれが可能になりますか?

boolean iftrue = false;
    for (int i = 0; i < array.length - 1; i++) {
        for (int j = 0; j < i; j++) {
            if (IntValue(array[j]) == IntValue(array[i + j])) {
                iftrue = true;
            }
        }
    }
    return iftrue;
}
4

2 に答える 2

0

0 番目の要素を変数として、1 番目のインデックスから検索を続けます。一致する停止が見つかった場合は、配列の最後まで移動し、一致が見つからないことを報告します。これは、線形時間 O(N) で実行できます。ここで、N は配列のサイズです。2 つのループを持つ必要がないため、時間の複雑さが O(N^2) に増加します。

 boolean sameAsFirstElem(Object[] array) {
    boolean isEqual = false; //Assume match will not be there, if we come across any,
                             // we will set it  to true
    int firstElement = IntValue(array[0]);
    for (int i = 1; i < array.length; i++) {
        if (IntValue(array[i]) == firstElement) {
            isEqual = true; //Indicating that match has found
        }
    }
    return isEqual;
}

IntValue(Object) が int を返すと想定しているため、int firstElementオブジェクトをパラメーターとして取得します。

于 2013-09-15T23:30:40.420 に答える