如果只是动态的初始化数组还是比较简单的,网上有很多的案例。
代码背景
这是本新最近面试中遇到的题目,因为一个小时要干完四张的题目,很多需要手写代码太变态。这个题目在最后没来及写。需要原题的小伙伴可以下载去,还有一些最近遇到的面试问题总结和答案。
链接:https://pan.baidu.com/s/1wtB_-aHu-9YDtRpf54_F_Q
提取码:x47t
这个是元素数组长度不一样的情况。中间需要动态的初始化元素数组
就是 int[][] = new int[3][];第二个不给值,到用的时候,根据原数组的长度动态的给值。
给值的时候:比如给第一个元素赋值大小的时候 newArr[1] =new int[xx]; xx就是大小int值
int[][] arr = {{1,4, 2, 3}, {4, 6,4,5,5, 6}, {7, 8,9,10}};
int[][] newArr = new int[arr.length][];
for (int i = 0; i < arr.length ; i++) {
//把arr数组的最后一个数据的长度符给newArr的第一个元素数组
newArr[arr.length -1- i] =new int[arr[i].length];
for (int j = 0; j < arr[i].length; j++) {
newArr[arr.length - 1 - i][arr[i].length-j-1] = arr[i][j];
}
}
for (int[] ar : newArr) {
System.out.println(Arrays.toString(ar));
}
运行的结果是:
[10, 9, 8, 7]
[6, 5, 5, 4, 6, 4]
[3, 2, 4, 1]
Process finished with exit code 0
到这里这样题目就很简单了,上面的代码是题目的升级版,
题目的题就可以把动态初始化的那一步省略,代码不够简洁。也作为自己的一个记录