gpt4 book ai didi

java - 将数组扩展为表示索引的次数与原始值的大小相同

转载 作者:行者123 更新时间:2023-11-30 02:14:03 25 4
gpt4 key购买 nike

示例:expand(new int[]{3, 2, 5}) -> {0, 0, 0, 1, 1, 2, 2, 2, 2, 2}
我试图让它创建一个新数组来打印索引 3、3 次。所以 3 就是 0,0,0。

public static int[] expand(int[] input) {
int c = 0;
int[] myArray = new int[sum(input)];
if(input.length == 0){
return new int[0];
}
for(int i = 0; i < input.length; i++) {
int a = input[i];
for(int j = c; j < a; j++) {
c += j;
myArray[j] = i;

}
}

return myArray;
}

目前这仅部分有效,我似乎无法弄清楚如何正确地遍历整个数组。此外,索引零似乎被跳过。

最佳答案

你很接近!看来您只需要稍微修改一下嵌套的 for 循环即可:

for (int j = 0; j < a; j++) {
myArray[c++] = i;
}

由于您使用 c 来跟踪当前索引,这只是将索引 c 处的元素设置为 i 并递增c。您还可以删除 a 并使用 input[i] 代替它。

注意:从 0 启动 j 比从 c 启动更容易。

关于java - 将数组扩展为表示索引的次数与原始值的大小相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49163130/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com