这里有两种方法可以将两个1-D数组相乘,每个数组包含5个整数,并显示生成的2-D(5x5)数组。不幸的是,我没有得到我希望的结果,因为我得到一个ArrayIndexOutOfBoundsException。我查看了我的代码以查找错误,但似乎无法找到错误。该错误消息还告诉我错误发生在mult[i][j] = array1[i]*array2[j];
语句。
public static int [][] matrixMult(int [] array1, int [] array2){
int [][] mult = new int [imax][jmax];
int i = 0;
int j = 0;
while(i < imax){
while(j < jmax){
mult[i][j] = array1[i]*array2[j];
if(j == jmax-1){
i++;
j = 0;
}else{
j++;
}
}
}
return mult;
}
public static void print2DArray(int array[][]){
int i = 0;
int j = 0;
while(i < imax){
while(j < jmax){
System.out.print("(" + i + ", " + j + ") " + array[i][j]);
if(j == jmax-1){
i++;
j = 0;
}else{
j++;
}
}
}
}
答案 0 :(得分:1)
你应该在c = [1,2]
a = [[1,2], [3,4], [3,2]]
k=max(max(map(lambda x:set(c)-set(x),a)))
print k if k else 0
时打破内循环,否则在下一次迭代中j == jmax-1
将变为5,这将给你ArrayIndexOutOfBoundsException。
i