学校的一道数组题...求解答
来源:2-1 数组总结
katherinesii
2020-08-09 20:46:15
我已经想了很久了 实在不知道怎么做
2回答
好帮手慕小班
2020-08-10
同学你好,楼上慕丝1539783同学的说法很详细,同学可以参考贴出代码来尝试运行一下。
继续加油 祝:学习愉快~
慕丝1539783
2020-08-09
首先确定两点
1、返回数组result外层数组长度与传入参数数组长度一致。
2、返回数组result内层数组长度依次递增。
按这个逻辑,就能先定下循环的逻辑,再在循环内给数组赋值就可以了。
import java.util.Arrays;
public class Test {
public static int[][] generateArray(int[] array) {
int[][] out = new int[array.length][]; //确定外层数组长度,长度与传入参数数组长度一致
for (int i = 0; i < array.length; i++) { //这个for循环遍历外层长度,以便赋值
int[] in = new int[i + 1]; //确定内层数组长度,与循环次数一致
for (int j = 0; j < in.length; j++) { //这个for循环遍历内层长度,以便赋值
in[j] = array[array.length - 1 - i + j]; //内层数组赋值
//intArray[intArray.length - 1]为传入的参数最后一位,-i+j只能你自己体会了
}
out[i] = in; //外层数组赋值,值为内层数组
}
return out; //返回外层数组
}
public static void main(String[] args) throws Exception {
int[][] result = Test.generateArray(new int[]{2, 4, 6, 8, 10});
for (int[] ints : result) System.out.println(Arrays.toString(ints));
}
}相似问题