поиск всех серий в массиве

Как мне найти номер всех серий (комбинаций массива, которые имеют не менее 3 последовательные значения, например [7,8,9]) и имеют наибольшее количество значений?

из [3,4,1,2,2] это будет 2 - ([1,2,3,4] дважды, но игнорируйте [1,2,3] * 2 и [2,3,4] * 2)

из [9,6,7,5,8], это будет 1 - ([5,6, 7,8,9])

из [1,2,3,1,2] это будет 4 ([1,2, 3] * 3)

Спасибо


редактировать

суть этого в том, чтобы считать пробежки в детской кроватке. Не имеет значения, в каком порядке массив имеет серию, пока подсчитываемая серия не перекрывает все карты.


edit 1

var $cards:Array = [9, 4, 3, 2, 2];
var $ranks:Array = [];
var $c:int;
for each ($c in $cards) {
    if ($ranks[$c] == null) {
        $ranks[$c] = 1;
    }else {
        $ranks[$c] ++;
    }
}

это создаст массив ($ ranks), который будет иметь эти значения [2: 2, 3: 1, 4: 1, 9: 1]

из этого я смогу умножить значения под 2,3 ad4 4 и умножить их на 3, так что я получу 2 * 1 * 1 * 3

Теперь я пытаюсь понять, как найти последовательные значения и игнорировать те, которые не являются (например, 9)

6
задан Daniel 2 January 2011 в 20:22
поделиться