【发布时间】:2014-12-27 07:14:41
【问题描述】:
我正在尝试在 Java 中编写一个方法,该方法接收一个数组并返回一个新数组,其中每个数字都打印了该次数。这是一个输入和输出示例:“1 2 3 0 4 3”--->“1 2 2 3 3 3 4 4 4 4 3 3 3”。我被卡住了,我的程序无法编译。有谁知道我哪里出错了?
public static int [] multiplicity(int [] nums) {
for (int i = 0 ; i < nums.length ; i++) {
int size = nums.length + 1;
int newNums[] = new int [size];
for (int j = 0 ; j < nums.length ; j++) {
int value = nums[j];
for (int v = 0 ; v < value ; v++) {
newNums[j + v] = value;
}
}
}
return newNums;
}
【问题讨论】:
-
"我的程序不会编译" 那么告诉我们编译器错误是什么。
-
它说“newNums 无法解析为变量”
-
你的程序有很多我现在可以看到的缺陷。拿着一张纸坐下来,一步一步地完成这个过程。首先,看看您初始化新 int 数组的方式。你给我们的例子有什么意义吗?
-
想象一下如果
nums的长度为 0 会发生什么。你的第一个 for 循环永远不会进入,newNums永远不会被创建,你的 return 语句试图返回一些不存在。
标签: java arrays multiplicity