java - 以相同顺序重复数组 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;
}
我的解决方案仅适用于某些测试,而不是全部。如何修复我的代码以便它可以解决所有给定的测试?
解决方案
您的循环仅复制数组的第一个元素。你应该复制所有元素的numRepeats
时间。就像是,
for (String s : array) {
for (int i = 0; i < numRepeats; i++) {
arr[m++] = s;
}
}
阅读每个String s
inarray
分配s
给位置m
的内容arr
(并在m
之后增加)。
推荐阅读
- python - 在 numpy 数组中找到很大的差异
- angular - 如何以角度将对象从一个组件传递到另一个组件
- java - (React Native/Android) Android getFilesDir() 给我 '/data/user/' 而不是 '/data/data/'
- python - TensorFlow 中类似 NumPy 的切片
- security - 为什么 Emacs 抱怨有风险的文件局部变量?
- powershell - 使用 powershell 进行敏感词搜索
- python - Igraph 绘图损坏节点名称
- batch-file - 如何通过使用批处理比较两个文本文件来删除重复的单词或行?
- php - PHP中多维数组的总和值
- python - 在 GridLayout kivy 中添加多个 GridLayout