学校的一道数组题...求解答

来源:2-1 数组总结

katherinesii

2020-08-09 20:46:15

http://img.mukewang.com/climg/5f2feff808cbdf3114401080.jpg我已经想了很久了 实在不知道怎么做

写回答

2回答

好帮手慕小班

2020-08-10

同学你好,楼上慕丝1539783同学的说法很详细,同学可以参考贴出代码来尝试运行一下。

继续加油  祝:学习愉快~

0

慕丝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));
    }
}
0
hatherinesii
h 呜呜呜太谢谢了 好清楚的逻辑实在麻烦了!!!!!!!!!
h020-08-10
共1条回复

0 学习 · 16556 问题

查看课程