Как мне найти номер всех серий (комбинаций массива, которые имеют не менее 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)