-1

整数型の配列リストがあります。リストにはいくつかの値が含まれています。
ある時点で、リストには同様の値が連続して含まれます (3 つの値)。
3 つの類似要素が出現する位置を見つける必要があります。

例えば:

ArrayList<Integer> int_values=new ArrayList<Integer>();
int_values.add(10);
int_values.add(20);
int_values.add(30);
int_values.add(10);
int_values.add(10);
int_values.add(10);

位置 3 から 5 に見られるように、同様の値があります。
したがって、位置 5 を取得する必要があります。
また、この一連の同様の要素が繰り返されるのは 1 回だけです。

シナリオを説明できることを願っています。

4

2 に答える 2

1

あなたは以下のようにすることができます、

public static List<Integer> findConsequtive3(ArrayList<Integer> int_values) {

        Integer[] arrayItems = (Integer[]) int_values.toArray(new Integer[0]);

        List<Integer> consequetive = new ArrayList<Integer>();
        int count = 1;
        for (int i = 1; i < arrayItems.length; i++) {
            if (arrayItems[i - 1] == arrayItems[i]) {
                count++;
                if (count == 3) {
                    consequetive.add(i + 1); // Since array is zero indexed adding 1
                    count = 0; // resetting count
                }
            }
        }
        return consequetive;
    }
于 2013-01-29T06:34:29.193 に答える
0
public static void main(String[] args) {
    ArrayList<Integer> int_values = new ArrayList<Integer>();
    int_values.add(10);
    int_values.add(20);
    int_values.add(30);
    int_values.add(10);
    int_values.add(10);
    int_values.add(10);
    int count = 0;
    for (int i = 0; i < int_values.size() - 2; i++) {
        if (int_values.get(i) == int_values.get(i + 1))
            if (int_values.get(i + 1) == int_values.get(i + 2))
                System.out.println(i+2);
    }
}
于 2013-01-29T06:25:38.440 に答える