Java 如何访问三角形数字中的每一行?

Java 如何访问三角形数字中的每一行?,java,arrays,collections,multidimensional-array,Java,Arrays,Collections,Multidimensional Array,给定的三角形数字如下所示: 4 5 3 9 2 21 1 46 12 8 .... upto n rows. 需要从每一行中获取最大的数字并求和 我不知道如何放置所有n行(如2D数组)以及如何从中选择每一行。publicstaticvoidmain(String[]args){ public static void main(String[] args) { int[][] matrix = { { 4 }, { 5, 3 }, { 9, 2, 21 }, { 1, 46,

给定的三角形数字如下所示:

4
5  3
9  2  21
1  46 12  8
.... upto n rows.
需要从每一行中获取最大的数字并求和

我不知道如何放置所有n行(如2D数组)以及如何从中选择每一行。

publicstaticvoidmain(String[]args){
public static void main(String[] args) {

    int[][] matrix = { { 4 }, { 5, 3 }, { 9, 2, 21 }, { 1, 46, 12, 8 } };
    int sum = 0;
    for (int i = 0; i < matrix.length; i++) {
        int maxInRow = matrix[i][0];
        for (int j = 0; j < matrix[i].length; j++) {
            System.out.println(matrix[i][j]);

            if (maxInRow < matrix[i][j]) {
                maxInRow = matrix[i][j];
            }
        }
        sum = sum + maxInRow;

    }
    System.out.println(sum);

}
int[][]矩阵={{4},{5,3},{9,2,21},{1,46,12,8}; 整数和=0; 对于(int i=0;i

尝试以下方法:

如果您可以使用
列表而不是
数组,那么使用以下方法您的工作将非常简单:

//下面的语法称为“双大括号初始化”。
List triangularNumber=new ArrayList(){
{
//将内部列表添加到外部列表。
添加(Arrays.asList(4));
添加(Arrays.asList(5,3));
添加(Arrays.asList(9,2,21));
添加(Arrays.asList(1,46,12,8));
}
};
整数和=0;
对于(列表内部列表:三角形编号){
sum+=Collections.max(innerList);
}
系统输出打印项数(总和);

为什么不使用地图?如果需要了解每行的索引,可以这样做:

Map<Integer, List<Integer>> numbers = new HashMap<Integer, List<Integer>();


这应该可以解决问题。

为什么不直接从大小减一的数组中读取数组项,比如数组[size-1]?为什么要将它们命名为三角形数?他们有什么特别之处吗。是的,您需要一个数组的
数组来存储这样的结构。更好的是,一个
列表
。我把它命名为三角形数字,因为每行中的元素数量增加,所以第n行有n个元素。@NikhilAraballi您试过写代码吗?请与我们共享您的代码。您是想要最大值的总和,还是还想要打印该表示?
Map<Integer, List<Integer>> numbers = new HashMap<Integer, List<Integer>();
Collections.max(...)