Javascript 数组移位和求和
帮助解决此问题,或告诉我此问题的算法名称:Javascript 数组移位和求和,javascript,arrays,algorithm,shift,Javascript,Arrays,Algorithm,Shift,帮助解决此问题,或告诉我此问题的算法名称: 长度为N的一维数组随机填充数字,所有数字都是2的幂。可以在阵列上执行两个操作:左移位和右移位。当左右移动时,两个相同的数字并排出现;将在左右单元格中放置一个新值。数组中的值向左向右移动一个位置。[1,4,16,8,8,2,1]>左>[1,4,16,16,2,1]>右>[1,4,32,2,1]。找到一个移位序列,该移位序列将导致最小数组长度。所描述的移位似乎是对“是”的概括,但仅限于一维,没有任何零。我认为该算法没有名字,但在2048游戏的上下文中,这种
长度为N的一维数组随机填充数字,所有数字都是2的幂。可以在阵列上执行两个操作:左移位和右移位。当左右移动时,两个相同的数字并排出现;将在左右单元格中放置一个新值。数组中的值向左向右移动一个位置。[1,4,16,8,8,2,1]>左>[1,4,16,16,2,1]>右>[1,4,32,2,1]。找到一个移位序列,该移位序列将导致最小数组长度。所描述的移位似乎是对“是”的概括,但仅限于一维,没有任何零。我认为该算法没有名字,但在2048游戏的上下文中,这种转换通常被称为tile合并 首先请注意,左移和右移的效果没有区别。两者的结果相同 您可以使用一个索引遍历数组,并跟踪另一个辅助索引,该索引在两个值合并时不会增加。相反,在每次合并之后,只要合并可以发生,辅助索引就会向后移动,然后它将与主索引一起再次递增。当不进行合并时,主索引处的值仅复制到次索引 下面是代码中的外观: 功能性耳环{ 设j=0; 对于let i=1;i
console.logcollapsearl@Andreas我至少需要算法的名称,然后我自己来实现它。我不理解描述,左移和右移有什么区别?更具体地说,在左右单元格中放置的新值是什么?在您的示例中,如果先进行右移,然后进行左移,结果会有什么不同?你提到一个新的值被放置…,但我在你的例子中没有看到,我想知道这个值是什么?