4

2 次元配列 'int [][] m' と値 'val' を受け取るメソッドを作成し、val がO(n) の複雑さで配列内にあるかどうかを確認する必要がありますが、n は行数として定義され、m は m です。二乗する必要があります

メソッドのパラメーターとして使用できる配列は、このメソッドに対して true を返す必要があります。

(true が返された場合、配列は要求どおりです)

public static boolean test(int[][] m) {
    int n = m.length;
    for (int r = 0; r < (n - 1); r++)
        for (int c = 0; c < n; c++)
            for (int i = 0; i < n; i++)
                if (m[r][c] > m[r + 1][i]) return false;
    return true;
}

この配列は TRUE を返します。

int [][] arr3 = new int [][]{
    { 0,   2,    1,    2,   0,  5,   5,   5,  },
    { 21,  21,   7,    7,   7,  21,  21,  21 ,},
    { 21,  21,  21,   21,  21,  21,  21 , 21, },
    { 21,  21,  23 ,  42,  41,  23,  21,  21, },
    { 60  ,56,  57,   58,  53,  52,  47,  51 ,},
    { 61,  65,  70 ,  72,  73,  78,  82,  98 ,},
    { 112, 121, 112, 134, 123, 100,  98,  111,},
    { 136, 136, 136, 134, 147, 150,  154, 134,},
};

valが配列内にあり、次のようになっている場合、私のメソッドは true を返す必要があります。

public boolean findValTest(int [][] m, int val){...}
4

3 に答える 3