我想要create方法返回一个数组,该数组包含与给定数组完全相同的数字,但重新排列,以便每3个后面紧跟一个4。
不要移动3,但每个其他数字可能会移动。该数组包含相同数量的3和4,每3个后面有一个不是3或4的数字,并且在任何4之前数组中出现3。
示例:
problem({1, 3, 1, 4, 4, 3, 1}) → {1, 3, 4, 1, 1, 3, 4}
problem({3, 2, 2, 4}) → {3, 4, 2, 2}
谢谢。
答案 0 :(得分:1)
设置i = 0,j = 0.然后重复以下步骤:
在索引≥i时找到前3个,后面跟不是4.如果没有找到,则表示您成功。如果3是数组中的最后一个数字或后跟3,则表示失败。现在找到索引≥j的前4个,前面没有3.如果没有找到,则失败。否则设置i = 3的位置,j = 4的位置,在位置i + 1和j处交换对象,设置i = i + 2和j = j + 1,并重复。
我不喜欢编写依赖于我自己不验证的数据的承诺的代码,所以这将适用于数组中的任何内容。