首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

java 编程 求二维矩阵每列最小值,该怎么处理

2012-02-28 
java编程求二维矩阵每列最小值各位大侠,我是菜菜鸟。帮我看看这个程序怎么写?求二维矩阵每列最小值,用一位

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]);
}
}
[解决办法]
写成一个函数如下:

Java code
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;}
[解决办法]
Java code
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] 

热点排行