【发布时间】:2023-03-15 04:21:01
【问题描述】:
帮助解决这个问题,或者给我这个算法的名称:
给定一个长度为 N 的一维数组,随机填充数字,所有数字都是 2 的幂。可以对数组执行两种操作:左移和右移。当左(右)移时,两个并列的相同数字被汇总;一个新值被放置在左(右)单元格中。数组中向右(左)的值向左(右)移动一位。 [1,4,16,8,8,2,1] > left > [1,4,16,16,2,1] > right > [1,4,32,2,1]。找出将产生最小数组长度的移位序列。
【问题讨论】:
-
@Andreas 我至少需要算法的名称,然后我自己来实现它。
-
看不懂描述,左右“移位”有什么区别?更具体地说,什么是“在左(右)单元格中放置了一个新值”?
-
在你的例子中,如果你先右移,然后左移,结果会有什么不同?您谈到“设置了新价值......”,但我在您的示例中没有看到这一点,并且想知道那个价值是什么?
标签: javascript arrays algorithm shift