首页 文章

搜索多维数组中的特定行

提问于
浏览
4

我是java编程的新手,我不能在我的一个任务中绕过最后一个问题 .

我们被告知要创建一个静态方法,它将搜索二维数组并将二维数组的数字与输入数字进行比较......所以像这样:

private static int [] searchArray(int [] [] num,int N){

现在,我们返回的部分是一个新的一维数组,告诉每行中第一个数字的索引大于参数变量N.如果没有数字大于N,则返回-1阵列的那个位置 .

例如,一个名为“A”的多维数组:

4 5 6

8 3 1

7 8 9

2 0 4

如果我们使用这个方法并且做了searchArray(A,5),答案就是“{2,0,0,-1)”

2 回答

  • 1

    Here是关于Java 2D阵列的非常好的解释

    int num[][] = {{4,5,6},{8,3,1},{7,8,9}};
        int N = 5;
        int result[] = new int[num.length];
        for(int i=0; i<num.length; i++){
            result[i] = -1;
            for(int j=0; j<num[0].length; j++){
                if( N < num[i][j] ){
                    result[i] = j;
                    break;
                }
            }
        }
    
        for(int i=0; i<result.length; i++){
            System.out.println(result[i]);
        }
    

    第一个for循环(内部带有for的循环)以从左到右的方向从顶部到底部遍历2D阵列 . 这是,首先它与4然后5,6,8,3,1,7,8,9 .

    首先创建结果数组 . 长度取决于num的行数 . 如果没有大于N的数字,result [i]被设置为-1 . 如果找到大于N的数字,则保存列索引result [i] = j并且因为我们使用了break来退出for循环只想找到大于N的第一个数字的索引 .

    最后一个for循环只打印结果 .

  • 0

    通常,在使用多维数组时,您将使用嵌套的for循环:

    for(int i = 0; i < outerArray.length; i++){
       //this loop searches through each row
       for(int j = 0; j < innerArrays.length; j++) {
         //this loop searches through each column in a given row
         //do your logic code here
       }
    }
    

    我不会给你更多的基本结构,因为你需要理解这个问题;你将来会遇到很多这样的结构,但这应该让你开始 .

相关问题