我的问题是在2d数组中添加每一行的总和,并将这些值放在一个新的1d数组中。
这是我的代码
public static int[] sumRow(int[][] N){
int[] rowSum = new int[N.length];
for(int i = 0; i<N.length;i++){
for(int j = 0; j<N[i].length; j++){
rowSum[i] = N[i][j] + N[i+1][j+1];
}
}
return rowSum;
}
但它不起作用,请帮助。
答案 0 :(得分:1)
public static int[] sumRow(int[][] N){
int[] rowSum = new int[N.length];
for(int i = 0; i<N.length;i++){
rowSum[i] = 0; //<= initialize value
for(int j = 0; j<N[i].length; j++){
rowSum[i] += N[i][j]; //<= sum of row
}
}
return rowSum;
}
你已经写了大部分代码,但是你需要添加每一行,你需要添加N [0] [1],.... N [0] [N [0] .length - 1]在第0行。现在只需插入i和j值并在纸上书写就可以清楚了。
答案 1 :(得分:0)
试试这个。
public static int[] sumRow(int[][] N) {
return Stream.of(N)
.mapToInt(a -> IntStream.of(a).sum())
.toArray();
}