Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在二维矩阵的子矩阵中找到重复项并进行比较_Java_Algorithm_Matrix_Submatrix - Fatal编程技术网

Java 如何在二维矩阵的子矩阵中找到重复项并进行比较

Java 如何在二维矩阵的子矩阵中找到重复项并进行比较,java,algorithm,matrix,submatrix,Java,Algorithm,Matrix,Submatrix,我有个问题。有人能帮我找到子矩阵中的重复项吗? 我有一个在2d矩阵中找到子矩阵的代码,但我找不到重复的。我想把这些值推到堆栈上(因为在赋值中我应该使用堆栈),找到每个子矩阵中的所有重复项,然后比较它们,但我真的不知道怎么做。如果有人帮我完成这个项目,我将非常感激 我的代码: public static void main(String[] args) throws Exception { int[][] data = new int[3][3]; Random r

我有个问题。有人能帮我找到子矩阵中的重复项吗? 我有一个在2d矩阵中找到子矩阵的代码,但我找不到重复的。我想把这些值推到堆栈上(因为在赋值中我应该使用堆栈),找到每个子矩阵中的所有重复项,然后比较它们,但我真的不知道怎么做。如果有人帮我完成这个项目,我将非常感激

我的代码:

public static void main(String[] args) throws Exception {
        int[][] data = new int[3][3];
        Random random = new Random();
        for(int i=0; i<data.length;i++)
        {
            for(int j=0; j<data.length; j++)
            {
                data[i][j] = random.nextInt(10);
            }
        }
        printSubMatrix(data);
    }

private static void printSubMatrix(int[][] mat) {
        int rows=mat.length;
        int cols=mat[0].length;
        Stack _stack = new Stack();
        //prints all submatrix greater than or equal to 2x2
        for (int subRow = rows; subRow >= 2; subRow--) {
            int rowLimit = rows - subRow + 1;
            for (int subCol = cols; subCol >= 2; subCol--) {
                int colLimit = cols - subCol + 1;
                for (int startRow = 0; startRow < rowLimit; startRow++) {
                    for (int startCol = 0; startCol < colLimit; startCol++) {
                        for (int i = 0; i < subRow; i++) {
                            for (int j = 0; j < subCol; j++) {
                                System.out.print(mat[i + startRow][j + startCol] + " ");
                                _stack.push(mat[i+startRow][j+startCol]);
                            }
                            System.out.print("\n");
                        }
                        System.out.print("\n");
                    }
                }
            }
        }
    System.out.printf(_stack.toString().replaceAll("\\[", "").replaceAll("]", ""));
    }
publicstaticvoidmain(字符串[]args)引发异常{
int[][]数据=新int[3][3];
随机=新随机();
对于(int i=0;i=2;subCol--){
int colLimit=cols-subCol+1;
对于(int startRow=0;startRow
您需要提供有关子矩阵中重复的
是什么意思的信息?有几个子矩阵,从size
1
mxn
您的意思是在所有这些可能的子矩阵中找到重复的子矩阵吗?那么“比较”是什么意思?子矩阵中的重复项是相同的元素。这意味着,我需要在第一个子矩阵和第二个子矩阵中找到重复项,以此类推。接下来,我需要找出哪个子矩阵的重复项最多问题描述不清楚,如果需要解决方案,请给出好的示例。