首页 > 解决方案 > 以相同顺序重复数组 x 中的元素

问题描述

问题要求:“编写一个采用 2 个参数的方法:一个 String[] 数组和一个 int numRepeats,表示重复数组中每个元素的次数。返回一个新数组,每个元素重复 numRepeats 次。”

例如:

repeatElements(new String[]{"hello", "world"}, 3)

应该返回一个包含元素的新数组:

["hello", "hello", "hello", "world", "world", "world"]

我到目前为止的代码是:

public String[] repeatElements(String[] array, int numRepeats)
{
    String[] arr = new String[array.length * numRepeats];
    if(numRepeats == 0)
        return arr;

    if(array.length == 0)
        return arr;

    int m = 0;

    for(int i = 0; i < numRepeats; i++)
    {
        arr[m++] = array[0];
    }

    return arr;
}

我的解决方案仅适用于某些测试,而不是全部。如何修复我的代码以便它可以解决所有给定的测试?

标签: javaarrays

解决方案


您的循环仅复制数组的第一个元素。你应该复制所有元素的numRepeats时间。就像是,

for (String s : array) {
    for (int i = 0; i < numRepeats; i++) {
        arr[m++] = s;
    }
}

阅读每个String sinarray分配s给位置m的内容arr(并在m之后增加)。


推荐阅读