加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flash – 查找数组中的所有系列

发布时间:2020-12-15 07:29:45 所属栏目:百科 来源:网络整理
导读:如何查找所有序列的数量(具有至少3个连续值的数组的组合,如[7,8,9])并且具有最长的值? 从[3,4,1,2,2]它将是2 – ([1,3,4]两次,但忽略[1,3] * 2和[2,4] * 2 ) 来自[9,6,7,5,8]它将是1 – ([5,9]) 从[1,2]它将是4([1,3] * 3) 谢谢 编辑 这一点就是计算婴儿手
如何查找所有序列的数量(具有至少3个连续值的数组的组合,如[7,8,9])并且具有最长的值?

从[3,4,1,2,2]它将是2 – ([1,3,4]两次,但忽略[1,3] * 2和[2,4] * 2 )

来自[9,6,7,5,8]它将是1 – ([5,9])

从[1,2]它将是4([1,3] * 3)

谢谢

编辑

这一点就是计算婴儿手中的跑步数.只要计数的系列不与所有卡重叠,数组具有该系列的顺序无关紧要.

编辑1

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

这将创建一个具有这些值[2:2,3:1,4:1,9:1]的数组($rank)

从这里我将能够乘以2,3 ad4 4下的值并将它们乘以3,所以我得到2 * 1 * 1 * 3

我现在想弄清楚如何找到连续值,并忽略那些不连续的值(如9)

解决方法

您想要订购您的值并用自己的数组替换所有重复项.即.

//Order values and group matches
[3,2] = [1,[2,2],4]
[9,8] = [5,9]
[1,2] = [[1,1],3]

然后,您将需要找到最大的连续序列并删除违规.

//remove violations (6,8)... which I guess you also want to count separately.
[1,8] = [1,4]

然后,将所有数组的长度乘以找到您的分数.

清理阵列后,您可以考虑这样的公式.

array2 = [2,2];
array1 = [1,array2,4];
score = array1.length * array2.length = 8;

array3 = [3,3];
array2 = [2,array3,4];
score = array1.length * array2.length * array3.length = 24;

理解如何在代码中编写它应该很有趣.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读