From 255a5075aec34191a5b538e904e1149e57f8f884 Mon Sep 17 00:00:00 2001 From: varada610 Date: Tue, 7 Jan 2025 15:05:42 -0800 Subject: [PATCH 1/5] refactoring to correct package --- .../{misc => matrix}/InverseOfMatrix.java | 2 +- .../{misc => matrix}/MatrixTranspose.java | 2 +- .../{misc => matrix}/MedianOfMatrix.java | 2 +- .../{misc => matrix}/MirrorOfMatrix.java | 2 +- .../PrintAMatrixInSpiralOrder.java | 124 +++++++++--------- .../RotateMatrixBy90Degrees.java | 2 +- .../matrixexponentiation/Fibonacci.java | 2 +- .../{misc => matrix}/InverseOfMatrixTest.java | 7 +- .../{misc => matrix}/MatrixTransposeTest.java | 4 +- .../{misc => matrix}/MedianOfMatrixTest.java | 4 +- .../{misc => matrix}/MirrorOfMatrixTest.java | 4 +- .../TestPrintMatrixInSpiralOrder.java | 4 +- 12 files changed, 84 insertions(+), 75 deletions(-) rename src/main/java/com/thealgorithms/{misc => matrix}/InverseOfMatrix.java (98%) rename src/main/java/com/thealgorithms/{misc => matrix}/MatrixTranspose.java (97%) rename src/main/java/com/thealgorithms/{misc => matrix}/MedianOfMatrix.java (95%) rename src/main/java/com/thealgorithms/{misc => matrix}/MirrorOfMatrix.java (98%) rename src/main/java/com/thealgorithms/{others => matrix}/PrintAMatrixInSpiralOrder.java (94%) rename src/main/java/com/thealgorithms/{others => matrix}/RotateMatrixBy90Degrees.java (98%) rename src/main/java/com/thealgorithms/{ => matrix}/matrixexponentiation/Fibonacci.java (98%) rename src/test/java/com/thealgorithms/{misc => matrix}/InverseOfMatrixTest.java (96%) rename src/test/java/com/thealgorithms/{misc => matrix}/MatrixTransposeTest.java (95%) rename src/test/java/com/thealgorithms/{misc => matrix}/MedianOfMatrixTest.java (91%) rename src/test/java/com/thealgorithms/{misc => matrix}/MirrorOfMatrixTest.java (95%) rename src/test/java/com/thealgorithms/{others => matrix}/TestPrintMatrixInSpiralOrder.java (91%) diff --git a/src/main/java/com/thealgorithms/misc/InverseOfMatrix.java b/src/main/java/com/thealgorithms/matrix/InverseOfMatrix.java similarity index 98% rename from src/main/java/com/thealgorithms/misc/InverseOfMatrix.java rename to src/main/java/com/thealgorithms/matrix/InverseOfMatrix.java index 706feab0c69d..13e795a91297 100644 --- a/src/main/java/com/thealgorithms/misc/InverseOfMatrix.java +++ b/src/main/java/com/thealgorithms/matrix/InverseOfMatrix.java @@ -1,4 +1,4 @@ -package com.thealgorithms.misc; +package com.thealgorithms.matrix; /** * This class provides methods to compute the inverse of a square matrix diff --git a/src/main/java/com/thealgorithms/misc/MatrixTranspose.java b/src/main/java/com/thealgorithms/matrix/MatrixTranspose.java similarity index 97% rename from src/main/java/com/thealgorithms/misc/MatrixTranspose.java rename to src/main/java/com/thealgorithms/matrix/MatrixTranspose.java index 743682780b01..f91ebc10b8a9 100644 --- a/src/main/java/com/thealgorithms/misc/MatrixTranspose.java +++ b/src/main/java/com/thealgorithms/matrix/MatrixTranspose.java @@ -1,4 +1,4 @@ -package com.thealgorithms.misc; +package com.thealgorithms.matrix; /** * diff --git a/src/main/java/com/thealgorithms/misc/MedianOfMatrix.java b/src/main/java/com/thealgorithms/matrix/MedianOfMatrix.java similarity index 95% rename from src/main/java/com/thealgorithms/misc/MedianOfMatrix.java rename to src/main/java/com/thealgorithms/matrix/MedianOfMatrix.java index edeedbbee540..c710c60a2d2a 100644 --- a/src/main/java/com/thealgorithms/misc/MedianOfMatrix.java +++ b/src/main/java/com/thealgorithms/matrix/MedianOfMatrix.java @@ -1,4 +1,4 @@ -package com.thealgorithms.misc; +package com.thealgorithms.matrix; import java.util.ArrayList; import java.util.Collections; diff --git a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java b/src/main/java/com/thealgorithms/matrix/MirrorOfMatrix.java similarity index 98% rename from src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java rename to src/main/java/com/thealgorithms/matrix/MirrorOfMatrix.java index 89dfce3fe049..b24fcba75619 100644 --- a/src/main/java/com/thealgorithms/misc/MirrorOfMatrix.java +++ b/src/main/java/com/thealgorithms/matrix/MirrorOfMatrix.java @@ -1,4 +1,4 @@ -package com.thealgorithms.misc; +package com.thealgorithms.matrix; // Problem Statement /* diff --git a/src/main/java/com/thealgorithms/others/PrintAMatrixInSpiralOrder.java b/src/main/java/com/thealgorithms/matrix/PrintAMatrixInSpiralOrder.java similarity index 94% rename from src/main/java/com/thealgorithms/others/PrintAMatrixInSpiralOrder.java rename to src/main/java/com/thealgorithms/matrix/PrintAMatrixInSpiralOrder.java index ddc37a916cbf..2e735222b7a6 100644 --- a/src/main/java/com/thealgorithms/others/PrintAMatrixInSpiralOrder.java +++ b/src/main/java/com/thealgorithms/matrix/PrintAMatrixInSpiralOrder.java @@ -1,62 +1,62 @@ -package com.thealgorithms.others; - -import java.util.ArrayList; -import java.util.List; - -public class PrintAMatrixInSpiralOrder { - /** - * Search a key in row and column wise sorted matrix - * - * @param matrix matrix to be searched - * @param row number of rows matrix has - * @param col number of columns matrix has - * @author Sadiul Hakim : https://github.com/sadiul-hakim - */ - - public List print(int[][] matrix, int row, int col) { - - // r traverses matrix row wise from first - int r = 0; - // c traverses matrix column wise from first - int c = 0; - int i; - - List result = new ArrayList<>(); - - while (r < row && c < col) { - // print first row of matrix - for (i = c; i < col; i++) { - result.add(matrix[r][i]); - } - - // increase r by one because first row printed - r++; - - // print last column - for (i = r; i < row; i++) { - result.add(matrix[i][col - 1]); - } - - // decrease col by one because last column has been printed - col--; - - // print rows from last except printed elements - if (r < row) { - for (i = col - 1; i >= c; i--) { - result.add(matrix[row - 1][i]); - } - - row--; - } - - // print columns from first except printed elements - if (c < col) { - for (i = row - 1; i >= r; i--) { - result.add(matrix[i][c]); - } - c++; - } - } - return result; - } -} +package com.thealgorithms.matrix; + +import java.util.ArrayList; +import java.util.List; + +public class PrintAMatrixInSpiralOrder { + /** + * Search a key in row and column wise sorted matrix + * + * @param matrix matrix to be searched + * @param row number of rows matrix has + * @param col number of columns matrix has + * @author Sadiul Hakim : https://github.com/sadiul-hakim + */ + + public List print(int[][] matrix, int row, int col) { + + // r traverses matrix row wise from first + int r = 0; + // c traverses matrix column wise from first + int c = 0; + int i; + + List result = new ArrayList<>(); + + while (r < row && c < col) { + // print first row of matrix + for (i = c; i < col; i++) { + result.add(matrix[r][i]); + } + + // increase r by one because first row printed + r++; + + // print last column + for (i = r; i < row; i++) { + result.add(matrix[i][col - 1]); + } + + // decrease col by one because last column has been printed + col--; + + // print rows from last except printed elements + if (r < row) { + for (i = col - 1; i >= c; i--) { + result.add(matrix[row - 1][i]); + } + + row--; + } + + // print columns from first except printed elements + if (c < col) { + for (i = row - 1; i >= r; i--) { + result.add(matrix[i][c]); + } + c++; + } + } + return result; + } +} diff --git a/src/main/java/com/thealgorithms/others/RotateMatrixBy90Degrees.java b/src/main/java/com/thealgorithms/matrix/RotateMatrixBy90Degrees.java similarity index 98% rename from src/main/java/com/thealgorithms/others/RotateMatrixBy90Degrees.java rename to src/main/java/com/thealgorithms/matrix/RotateMatrixBy90Degrees.java index 6ad0ef024342..9a7f255282ac 100644 --- a/src/main/java/com/thealgorithms/others/RotateMatrixBy90Degrees.java +++ b/src/main/java/com/thealgorithms/matrix/RotateMatrixBy90Degrees.java @@ -1,4 +1,4 @@ -package com.thealgorithms.others; +package com.thealgorithms.matrix; import java.util.Scanner; /** diff --git a/src/main/java/com/thealgorithms/matrixexponentiation/Fibonacci.java b/src/main/java/com/thealgorithms/matrix/matrixexponentiation/Fibonacci.java similarity index 98% rename from src/main/java/com/thealgorithms/matrixexponentiation/Fibonacci.java rename to src/main/java/com/thealgorithms/matrix/matrixexponentiation/Fibonacci.java index afd34933047a..df7233d1f975 100644 --- a/src/main/java/com/thealgorithms/matrixexponentiation/Fibonacci.java +++ b/src/main/java/com/thealgorithms/matrix/matrixexponentiation/Fibonacci.java @@ -1,4 +1,4 @@ -package com.thealgorithms.matrixexponentiation; +package com.thealgorithms.matrix.matrixexponentiation; import java.util.Scanner; diff --git a/src/test/java/com/thealgorithms/misc/InverseOfMatrixTest.java b/src/test/java/com/thealgorithms/matrix/InverseOfMatrixTest.java similarity index 96% rename from src/test/java/com/thealgorithms/misc/InverseOfMatrixTest.java rename to src/test/java/com/thealgorithms/matrix/InverseOfMatrixTest.java index 2f20de444315..9a72b4de4303 100644 --- a/src/test/java/com/thealgorithms/misc/InverseOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/matrix/InverseOfMatrixTest.java @@ -1,12 +1,13 @@ -package com.thealgorithms.misc; - -import static org.junit.jupiter.api.Assertions.assertArrayEquals; +package com.thealgorithms.matrix; import java.util.stream.Stream; + +import static org.junit.jupiter.api.Assertions.assertArrayEquals; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; + class InverseOfMatrixTest { @ParameterizedTest diff --git a/src/test/java/com/thealgorithms/misc/MatrixTransposeTest.java b/src/test/java/com/thealgorithms/matrix/MatrixTransposeTest.java similarity index 95% rename from src/test/java/com/thealgorithms/misc/MatrixTransposeTest.java rename to src/test/java/com/thealgorithms/matrix/MatrixTransposeTest.java index cf668807b819..369e5a2e1cbb 100644 --- a/src/test/java/com/thealgorithms/misc/MatrixTransposeTest.java +++ b/src/test/java/com/thealgorithms/matrix/MatrixTransposeTest.java @@ -1,4 +1,4 @@ -package com.thealgorithms.misc; +package com.thealgorithms.matrix; import static org.junit.jupiter.api.Assertions.assertArrayEquals; import static org.junit.jupiter.api.Assertions.assertThrows; @@ -8,6 +8,8 @@ import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; +import com.thealgorithms.matrix.MatrixTranspose; + public class MatrixTransposeTest { private static Stream provideValidMatrixTestCases() { diff --git a/src/test/java/com/thealgorithms/misc/MedianOfMatrixTest.java b/src/test/java/com/thealgorithms/matrix/MedianOfMatrixTest.java similarity index 91% rename from src/test/java/com/thealgorithms/misc/MedianOfMatrixTest.java rename to src/test/java/com/thealgorithms/matrix/MedianOfMatrixTest.java index 19bc66857ae6..c541b69e1545 100644 --- a/src/test/java/com/thealgorithms/misc/MedianOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/matrix/MedianOfMatrixTest.java @@ -1,4 +1,4 @@ -package com.thealgorithms.misc; +package com.thealgorithms.matrix; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -7,6 +7,8 @@ import java.util.List; import org.junit.jupiter.api.Test; +import com.thealgorithms.matrix.MedianOfMatrix; + public class MedianOfMatrixTest { @Test diff --git a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java b/src/test/java/com/thealgorithms/matrix/MirrorOfMatrixTest.java similarity index 95% rename from src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java rename to src/test/java/com/thealgorithms/matrix/MirrorOfMatrixTest.java index 0da0cf0f804a..5326cc7fcaa4 100644 --- a/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/matrix/MirrorOfMatrixTest.java @@ -1,4 +1,4 @@ -package com.thealgorithms.misc; +package com.thealgorithms.matrix; import static org.junit.jupiter.api.Assertions.assertArrayEquals; import static org.junit.jupiter.api.Assertions.assertNull; @@ -6,6 +6,8 @@ import org.junit.jupiter.api.Test; +import com.thealgorithms.matrix.MirrorOfMatrix; + class MirrorOfMatrixTest { @Test diff --git a/src/test/java/com/thealgorithms/others/TestPrintMatrixInSpiralOrder.java b/src/test/java/com/thealgorithms/matrix/TestPrintMatrixInSpiralOrder.java similarity index 91% rename from src/test/java/com/thealgorithms/others/TestPrintMatrixInSpiralOrder.java rename to src/test/java/com/thealgorithms/matrix/TestPrintMatrixInSpiralOrder.java index 986e72ea45b5..1e2fe2b446df 100644 --- a/src/test/java/com/thealgorithms/others/TestPrintMatrixInSpiralOrder.java +++ b/src/test/java/com/thealgorithms/matrix/TestPrintMatrixInSpiralOrder.java @@ -1,10 +1,12 @@ -package com.thealgorithms.others; +package com.thealgorithms.matrix; import static org.junit.jupiter.api.Assertions.assertIterableEquals; import java.util.List; import org.junit.jupiter.api.Test; +import com.thealgorithms.matrix.PrintAMatrixInSpiralOrder; + public class TestPrintMatrixInSpiralOrder { @Test public void testOne() { From 8c36f5fa94fdb62cb3207e4e917f49d36d2fa305 Mon Sep 17 00:00:00 2001 From: varada610 Date: Wed, 8 Jan 2025 12:57:53 -0800 Subject: [PATCH 2/5] build fix --- src/test/java/com/thealgorithms/matrix/InverseOfMatrixTest.java | 1 - src/test/java/com/thealgorithms/matrix/MatrixTransposeTest.java | 2 -- src/test/java/com/thealgorithms/matrix/MedianOfMatrixTest.java | 2 -- src/test/java/com/thealgorithms/matrix/MirrorOfMatrixTest.java | 2 -- .../com/thealgorithms/matrix/TestPrintMatrixInSpiralOrder.java | 2 -- 5 files changed, 9 deletions(-) diff --git a/src/test/java/com/thealgorithms/matrix/InverseOfMatrixTest.java b/src/test/java/com/thealgorithms/matrix/InverseOfMatrixTest.java index 9a72b4de4303..27292df991a5 100644 --- a/src/test/java/com/thealgorithms/matrix/InverseOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/matrix/InverseOfMatrixTest.java @@ -7,7 +7,6 @@ import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; - class InverseOfMatrixTest { @ParameterizedTest diff --git a/src/test/java/com/thealgorithms/matrix/MatrixTransposeTest.java b/src/test/java/com/thealgorithms/matrix/MatrixTransposeTest.java index 369e5a2e1cbb..0457f31418cf 100644 --- a/src/test/java/com/thealgorithms/matrix/MatrixTransposeTest.java +++ b/src/test/java/com/thealgorithms/matrix/MatrixTransposeTest.java @@ -8,8 +8,6 @@ import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; -import com.thealgorithms.matrix.MatrixTranspose; - public class MatrixTransposeTest { private static Stream provideValidMatrixTestCases() { diff --git a/src/test/java/com/thealgorithms/matrix/MedianOfMatrixTest.java b/src/test/java/com/thealgorithms/matrix/MedianOfMatrixTest.java index c541b69e1545..db66bb2d187b 100644 --- a/src/test/java/com/thealgorithms/matrix/MedianOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/matrix/MedianOfMatrixTest.java @@ -7,8 +7,6 @@ import java.util.List; import org.junit.jupiter.api.Test; -import com.thealgorithms.matrix.MedianOfMatrix; - public class MedianOfMatrixTest { @Test diff --git a/src/test/java/com/thealgorithms/matrix/MirrorOfMatrixTest.java b/src/test/java/com/thealgorithms/matrix/MirrorOfMatrixTest.java index 5326cc7fcaa4..2d68e1faaa17 100644 --- a/src/test/java/com/thealgorithms/matrix/MirrorOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/matrix/MirrorOfMatrixTest.java @@ -6,8 +6,6 @@ import org.junit.jupiter.api.Test; -import com.thealgorithms.matrix.MirrorOfMatrix; - class MirrorOfMatrixTest { @Test diff --git a/src/test/java/com/thealgorithms/matrix/TestPrintMatrixInSpiralOrder.java b/src/test/java/com/thealgorithms/matrix/TestPrintMatrixInSpiralOrder.java index 1e2fe2b446df..bb415a5861a8 100644 --- a/src/test/java/com/thealgorithms/matrix/TestPrintMatrixInSpiralOrder.java +++ b/src/test/java/com/thealgorithms/matrix/TestPrintMatrixInSpiralOrder.java @@ -5,8 +5,6 @@ import java.util.List; import org.junit.jupiter.api.Test; -import com.thealgorithms.matrix.PrintAMatrixInSpiralOrder; - public class TestPrintMatrixInSpiralOrder { @Test public void testOne() { From 970a32a7c73cc48cc6ba0cebfb5672aa024a4967 Mon Sep 17 00:00:00 2001 From: varada610 Date: Fri, 10 Jan 2025 12:17:40 -0800 Subject: [PATCH 3/5] Build fail by lint --- src/test/java/com/thealgorithms/matrix/InverseOfMatrixTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/com/thealgorithms/matrix/InverseOfMatrixTest.java b/src/test/java/com/thealgorithms/matrix/InverseOfMatrixTest.java index 27292df991a5..f710cf4432c8 100644 --- a/src/test/java/com/thealgorithms/matrix/InverseOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/matrix/InverseOfMatrixTest.java @@ -1,8 +1,8 @@ package com.thealgorithms.matrix; +import static org.junit.jupiter.api.Assertions.assertArrayEquals; import java.util.stream.Stream; -import static org.junit.jupiter.api.Assertions.assertArrayEquals; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; From 4c54898c374d687b6409cc4de8999337e57fed6e Mon Sep 17 00:00:00 2001 From: varada610 Date: Fri, 10 Jan 2025 12:38:02 -0800 Subject: [PATCH 4/5] build fix for PMD --- .../thealgorithms/matrix/matrixexponentiation/Fibonacci.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/thealgorithms/matrix/matrixexponentiation/Fibonacci.java b/src/main/java/com/thealgorithms/matrix/matrixexponentiation/Fibonacci.java index df7233d1f975..9c9f97b93ea4 100644 --- a/src/main/java/com/thealgorithms/matrix/matrixexponentiation/Fibonacci.java +++ b/src/main/java/com/thealgorithms/matrix/matrixexponentiation/Fibonacci.java @@ -55,14 +55,14 @@ private static int[][] matrixMultiplication(int[][] matrix1, int[][] matrix2) { */ public static int[][] fib(int n) { if (n == 0) { - return Fibonacci.IDENTITY_MATRIX; + return IDENTITY_MATRIX; } else { int[][] cachedResult = fib(n / 2); int[][] matrixExpResult = matrixMultiplication(cachedResult, cachedResult); if (n % 2 == 0) { return matrixExpResult; } else { - return matrixMultiplication(Fibonacci.FIB_MATRIX, matrixExpResult); + return matrixMultiplication(FIB_MATRIX, matrixExpResult); } } } From 66de9229975e371bc1b60281053673ade23bf87f Mon Sep 17 00:00:00 2001 From: varada610 Date: Fri, 10 Jan 2025 13:57:06 -0800 Subject: [PATCH 5/5] pmd failure and clang check --- pmd-exclude.properties | 1 - src/test/java/com/thealgorithms/matrix/InverseOfMatrixTest.java | 1 - 2 files changed, 2 deletions(-) diff --git a/pmd-exclude.properties b/pmd-exclude.properties index f6ee88196962..5bf31455e190 100644 --- a/pmd-exclude.properties +++ b/pmd-exclude.properties @@ -55,7 +55,6 @@ com.thealgorithms.maths.SumOfArithmeticSeries=UselessParentheses com.thealgorithms.maths.TrinomialTriangle=UselessParentheses com.thealgorithms.maths.VampireNumber=CollapsibleIfStatements com.thealgorithms.maths.Volume=UselessParentheses -com.thealgorithms.matrixexponentiation.Fibonacci=UnnecessaryFullyQualifiedName com.thealgorithms.misc.Sparsity=UselessParentheses com.thealgorithms.misc.ThreeSumProblem=UselessParentheses com.thealgorithms.misc.WordBoggle=UselessParentheses diff --git a/src/test/java/com/thealgorithms/matrix/InverseOfMatrixTest.java b/src/test/java/com/thealgorithms/matrix/InverseOfMatrixTest.java index f710cf4432c8..930fb377cd32 100644 --- a/src/test/java/com/thealgorithms/matrix/InverseOfMatrixTest.java +++ b/src/test/java/com/thealgorithms/matrix/InverseOfMatrixTest.java @@ -2,7 +2,6 @@ import static org.junit.jupiter.api.Assertions.assertArrayEquals; import java.util.stream.Stream; - import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource;