すべての系列 ([7,8,9] のように、少なくとも 3 つの連続した値を持つ配列の組み合わせ) の数を見つけ、値の数が最も多いのはどうすればよいですか?
[3,4,1,2,2] からは 2 - ([1,2,3,4] が 2 回になりますが、[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) になります
ありがとう
編集
これのポイントは、クリブ ハンドでランをカウントすることです。カウントされたシリーズがすべてのカードと重ならない限り、アレイがどのような順序でシリーズを持っているかは問題ではありません。
編集 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 など) を無視します。