什么是优雅的算法来混合两个数组(可能有不同大小)的元素,以便从每个数组以交替的方式绘制项目,剩余的添加到结尾?
例如
阵列1-A,B,C,D,E,F,G
阵列2 - 1,2,3,4
混合阵列 - A,1,B,2,C,3,D,4,E,F,G
我更喜欢C#中的解决方案,但我应该能够以任何语言(甚至某种形式的伪代码)读取和转置解决方案.
不要担心空检查或任何其他边缘情况,我会处理这些.
你的意思是什么?
// naive/boring approach int i = 0; int m = 0; while (i < a1.size() || i < a2.size()) { if (i < a1.size()) mixed[m++] = a1[i]; if (i < a2.size()) mixed[m++] = a2[i]; i++; }
如果使用它,您可能希望将数组长度存储在变量中,这样您就不必继续调用size()方法(或者使用您使用的任何语言).