-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。
这一系列类似的元素重复只会出现一次。

我希望我能够解释这个场景。

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 回答