黑马程序员技术交流社区

标题: 问个二维数组的问题? [打印本页]

作者: l落落落叶    时间: 2015-3-27 16:56
标题: 问个二维数组的问题?
int[][]arr={{2,1,4,-7},{-13,3,5,6},{121,-21,9,14}}
如何更快的求出最小值
作者: 青岛_黑马    时间: 2015-3-27 21:40
遍历比较?

作者: liyanghml    时间: 2015-3-27 21:52
本帖最后由 liyanghml 于 2015-3-27 22:27 编辑

你想怎么快呢,按照数组遍历不好吗(希望能帮到你)class  GetmaxDemo
{

        public static void main(String[] args)
        {
                int [][]arr = {{2,1,4,-7},{-13,3,5,6},{121,-21,9,14}};
                int max = getMax(arr);
                System.out.println(max);
        }
        public static int getMax(int[][] arr)
        {
                int tem =0,tem1=0;
                for(int x = 0;x<arr.length;x++)
                {
                        for(int y =0;y<arr[x].length;y++)
                        if(arr[x][y]>arr[tem][tem1])
                        {
                                tem1 = y;
                                tem = x;
                        }
                }
                        return arr[tem][tem1];                       
        }


作者: xman20    时间: 2015-3-27 21:54
遍历吧,感觉最快了
作者: lmcci    时间: 2015-3-27 21:56
循环外定义变量初始化为数组任意一个值,二维数组用两个for循环遍历,内层循环中用if进行判断
作者: 佐佑    时间: 2015-3-27 22:00
正常解决就行了
作者: lf027    时间: 2015-3-27 22:03
如果是这个题的话,肯定是先遍历,在判断>0,<0,=0,的数,取出负数,再进行比较,可就可以得出最小值了
作者: hhh233    时间: 2015-3-27 22:13
快速的不会 只会基本的
  1.         static int Min(int x[][]) { // 最大值
  2.                 int min=0,min_1=0;
  3.                 for (int i = 0; i < x.length; i++) {
  4.                         for(int j=0;j<x[i].length;j++)
  5.                         {
  6.                         if (x[min][min_1] > x[i][j])
  7.                                 x[min][min_1] = x[i][j];
  8.                         }
  9.                 }
  10.                 return x[min][min_1];
  11.         }
复制代码

作者: linliner    时间: 2015-3-27 22:25
只能想到遍历
作者: 若辰    时间: 2015-3-27 22:36
视频里不是有吗,多看看,多敲敲就会了哦
作者: 田晓莉    时间: 2015-3-27 22:51
利用循环嵌套,比较快吧
  1. class minTest
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 //定义二维数组
  6.                 int[][] arr = {{2,1,4,-7},{-13,3,5,6},{121,-21,9,14}};
  7.                 int min = arr[0][0];
  8.                 //for循环嵌套,寻找最小值
  9.                 for (int x=0;x<arr.length ;x++ )
  10.                 {
  11.                         for(int y=0;y<arr.length;y++)
  12.                         {
  13.                                 if(arr[x][y]<min)
  14.                                 {
  15.                                         int temp = arr[x][y];
  16.                                         arr[x][y] = min;
  17.                                         min = temp;
  18.                                 }
  19.                         }
  20.                 }
  21.                 System.out.println(min);
  22.         }
  23. }
复制代码




作者: 阿穆隆    时间: 2015-3-27 23:43
楼上都说了,我就不多说什么了。楼主好好加油。
作者: ym199210    时间: 2015-3-27 23:47
表示不理解   
作者: 大神在何方    时间: 2015-3-27 23:49
遍历,,
作者: Heart灬空城    时间: 2015-3-28 00:00
就这整的
作者: l落落落叶    时间: 2015-3-28 07:08
谢谢,晓得了
作者: Vampire-he    时间: 2015-3-28 09:27
遍历吧,感觉应该这样
作者: longlongint    时间: 2015-3-28 11:53
目前只能想到遍历




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2