likes
comments
collection
share

【Java入门100例】10.各行元素之和——二维数组

作者站长头像
站长
· 阅读数 13

这是我参与11月更文挑战的第15天,活动详情查看:2021最后一次更文挑战

点赞再看,养成习惯。微信搜索【一条coding】关注这个在互联网摸爬滚打的程序员。

本文收录于github-技术专家修炼,里面有我的学习路线、系列文章、面试题库、自学资料、电子书等。

题目描述

难度:简单

计算二维数组中各行元素之和并查找其值最大的那个行。

知识点

  • 二维数组
  • 双重循环

解题思路

1.二维数组

二维数组本质上是以数组作为数组元素的数组,即“数组的数组”。可以想像成一个方阵。

定义数组

int brr [] []=new int[][3]; //二维数组中行可以省略,至少写出列

添加元素

brr[0][0]=1; //下标同样从0开始,可以指定位置赋值,也可以整体赋值。
brr={
  {1,2,3},
  {5,6,7},
  {9,10,11}
};

循环遍历

//遍历行
for(int i=0;i<3;i++){
  	 //遍历列
     for(int j=0;j<3;j++){
       System.out.println(brr[i][j]);
     }
} 	 

2.双重循环

类似上面的循环遍历。

在实际应用中,双重循环能解决大部分问题,但其时间复杂度为O(n^2),尽量避免使用。

代码实现

/**
 *计算二维数组中各行元素之和并查找其值最大的那个行。
 */
public class question_10 {
    public static void main(String args[]) {
        int myTable[][] = {
                {22, 34, 45, 11, 33, 5, 92},
                {17, 9, 27, 31, 46, 54, 88},
                {98, 81, 64, 62, 15, 14, 23},
                {54, 43, 55, 1, 22, 9, 33}
        };
        int sum, max, maxRow=0;
        max = 0;
        for (int row=0; row<4; row++) {
            sum = 0;
            for (int col=0; col<7; col++)
                sum += myTable[row][col];
            if (sum > max) {
                max = sum;
                maxRow = row;
            }
        }
        System.out.println("Row: " + maxRow + " value: " + max);
    }
}

输出结果

【Java入门100例】10.各行元素之和——二维数组

扩展总结

在实际开发中,我们更多使用的集合,关于集合的知识,可以看我这篇:大厂面试突进——集合篇

最后

独脚难行,孤掌难鸣,一个人的力量终究是有限的,一个人的旅途也注定是孤独的。当你定好计划,怀着满腔热血准备出发的时候,一定要找个伙伴,和唐僧西天取经一样,师徒四人团结一心才能通过九九八十一难。 所以,

如果你想学好Java

想进大厂

想拿高薪

想有一群志同道合的伙伴

请加入技术交流