题目的主要信息:
- 给定一个二维数组,请你编写一个求和函数,计算出这个数组元素的和
具体做法:
我们仔细观察该数组,每行的元素个数或有不同,因此我们遍历数组的时候,对于第一维要求数组行数,来约束行遍历,对于每行数组,我们依旧要求数组行数,来约束列遍历,遍历的时候对访问到的元素累加即可。
public class Main {
public static void main(String[] args)
{
int[][] arr = {{11,33,55},{22,44,66,88},{131,214,315,146},{928,827,726,625},{424,525}};
int sum=add(arr);
System.out.println(sum);
}
public static int add(int[][] arr)
{
int sum=0;
for(int i = 0; i < arr.length; i++){ //遍历行数小于数组维度大小
for(int j = 0; j < arr[i].length; j++) //每行列数等于该行的数组大小
sum += arr[i][j]; //累加
}
return sum;
}
}
复杂度分析:
- 时间复杂度:,其中为二维数组行数,为最大列数,遍历复杂度不会超过这两个相乘
- 空间复杂度:,遍历的时候没有额外空间,数组arr属于必要空间