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(...)