java 编程 求二维矩阵每列最小值
各位大侠,我是菜菜鸟。帮我看看这个程序怎么写?
求二维矩阵每列最小值,用一位数组返回结果;
例如:int[][]={{1,6,8},{5,3}};
返回 1 3
[解决办法]
遍历比较,取出最小值
[解决办法]
[code=Java][/code]
public static void main(String[] args) {
//int[][] a={{...},{...},...};
int[][] a={{12,3,4},{2,5,7,22,66,22},{9,0}};
int m=0 ; //用于标识最长的数组
//遍历获得最长的数组的编号
for(int i=1;i<a.length;i++){
if(a[m].length<a[i].length){
m=i;
}
}
int[] b = a[m].clone(); //用最长的数组初始化返回结果数组
for(int i=0;i<a.length;i++){
for(int j=0;j<a[i].length;j++){
if(b[j]>a[i][j]){
b[j]=a[i][j];
}
}
}
for(int i=0;i<b.length;i++){
System.out.println(b[i]);
}
}
[解决办法]
写成一个函数如下:
public static int[] getMin(int[][] a){ int m=0 ; //用于标识最长的数组 //遍历获得最长的数组的编号 for(int i=1;i<a.length;i++){ if(a[m].length<a[i].length){ m=i; } } int[] b = a[m].clone(); //用最长的数组初始化返回结果数组 for(int i=0;i<a.length;i++){ for(int j=0;j<a[i].length;j++){ if(b[j]>a[i][j]){ b[j]=a[i][j]; } } } return b;}
[解决办法]
import java.util.Arrays;import java.util.Comparator;public class Array { public int[] get(int[][] array){ Arrays.sort(array, new Comparator<int[]>() { @Override public int compare(int[] o1, int[] o2) { // TODO Auto-generated method stub Arrays.sort(o1); return 0; } }); Arrays.sort(array[array.length-1]); int[] result=new int[array.length]; for (int i = 0; i < array.length; i++) { result[i]=array[i][0]; } return result; } public static void main(String[] args) { int[][] array={{5,7,3,9},{9,10,2,13},{88,33,13,78},{99,103,100,138}}; int[] result=new Array().get(array); System.out.println(Arrays.toString(result)); }}结果打印:[3, 2, 13, 99]