From 38c3960c417d4b928a2b4881392748ab69d6df0d Mon Sep 17 00:00:00 2001 From: BamaCharanChhandogi Date: Sun, 28 May 2023 03:18:06 +0530 Subject: [PATCH 01/10] Octal To Binary Conerter --- .../conversions/OctalToBinary.java | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/main/java/com/thealgorithms/conversions/OctalToBinary.java diff --git a/src/main/java/com/thealgorithms/conversions/OctalToBinary.java b/src/main/java/com/thealgorithms/conversions/OctalToBinary.java new file mode 100644 index 000000000000..eb5deef5a878 --- /dev/null +++ b/src/main/java/com/thealgorithms/conversions/OctalToBinary.java @@ -0,0 +1,46 @@ +package com.thealgorithms.conversions; +import java.util.Scanner; +public class OctalToBinary { + public static void main(String[] args) { + Scanner scanner = new Scanner(System.in); + System.out.print("Enter an octal number: "); + String octalNumber = scanner.nextLine(); + + // Convert octal to binary + String binaryNumber = convertOctalToBinary(octalNumber); + + System.out.println("Binary equivalent: " + binaryNumber); + } + + public static String convertOctalToBinary(String octalNumber) { + StringBuilder binaryNumber = new StringBuilder(); + + for (int i = 0; i < octalNumber.length(); i++) { + char octalDigitChar = octalNumber.charAt(i); + int octalDigit = Character.getNumericValue(octalDigitChar); + + String binaryDigit = convertOctalDigitToBinary(octalDigit); + binaryNumber.append(binaryDigit); + } + + return binaryNumber.toString(); + } + + public static String convertOctalDigitToBinary(int octalDigit) { + StringBuilder binaryDigit = new StringBuilder(); + + while (octalDigit != 0) { + int octalDigitRemainder = octalDigit % 2; + binaryDigit.insert(0, octalDigitRemainder); + + octalDigit /= 2; + } + + // Add leading zeros if necessary + while (binaryDigit.length() < 3) { + binaryDigit.insert(0, "0"); + } + + return binaryDigit.toString(); + } +} From cbc792045e15d5d94a2f5233db6ed323731ceb80 Mon Sep 17 00:00:00 2001 From: BamaCharanChhandogi Date: Sun, 28 May 2023 10:55:27 +0530 Subject: [PATCH 02/10] Octal To Binary Conerter and added test case --- .../conversions/OctalToBinary.java | 45 +++++++++++-------- .../OctalToBinaryConverterTest.java | 15 +++++++ 2 files changed, 41 insertions(+), 19 deletions(-) create mode 100644 src/test/java/com/thealgorithms/conversions/OctalToBinaryConverterTest.java diff --git a/src/main/java/com/thealgorithms/conversions/OctalToBinary.java b/src/main/java/com/thealgorithms/conversions/OctalToBinary.java index eb5deef5a878..fa1ca10a482d 100644 --- a/src/main/java/com/thealgorithms/conversions/OctalToBinary.java +++ b/src/main/java/com/thealgorithms/conversions/OctalToBinary.java @@ -1,46 +1,53 @@ package com.thealgorithms.conversions; import java.util.Scanner; + +/** + * Converts any Binary Number to a Hexadecimal Number + * + * @author Bama Charan Chhandogi + */ + public class OctalToBinary { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Enter an octal number: "); - String octalNumber = scanner.nextLine(); + int octalNumber = scanner.nextInt(); // Convert octal to binary - String binaryNumber = convertOctalToBinary(octalNumber); + long binaryNumber = convertOctalToBinary(octalNumber); System.out.println("Binary equivalent: " + binaryNumber); } - public static String convertOctalToBinary(String octalNumber) { - StringBuilder binaryNumber = new StringBuilder(); + public static long convertOctalToBinary(int octalNumber) { + long binaryNumber = 0; + int digitPosition = 1; + + while (octalNumber != 0) { + int octalDigit = octalNumber % 10; + long binaryDigit = convertOctalDigitToBinary(octalDigit); - for (int i = 0; i < octalNumber.length(); i++) { - char octalDigitChar = octalNumber.charAt(i); - int octalDigit = Character.getNumericValue(octalDigitChar); + binaryNumber += binaryDigit * digitPosition; - String binaryDigit = convertOctalDigitToBinary(octalDigit); - binaryNumber.append(binaryDigit); + octalNumber /= 10; + digitPosition *= 1000; // Move to the next group of 3 binary digits } - return binaryNumber.toString(); + return binaryNumber; } - public static String convertOctalDigitToBinary(int octalDigit) { - StringBuilder binaryDigit = new StringBuilder(); + public static long convertOctalDigitToBinary(int octalDigit) { + long binaryDigit = 0; + int binaryMultiplier = 1; while (octalDigit != 0) { int octalDigitRemainder = octalDigit % 2; - binaryDigit.insert(0, octalDigitRemainder); + binaryDigit += octalDigitRemainder * binaryMultiplier; octalDigit /= 2; + binaryMultiplier *= 10; } - // Add leading zeros if necessary - while (binaryDigit.length() < 3) { - binaryDigit.insert(0, "0"); - } - - return binaryDigit.toString(); + return binaryDigit; } } diff --git a/src/test/java/com/thealgorithms/conversions/OctalToBinaryConverterTest.java b/src/test/java/com/thealgorithms/conversions/OctalToBinaryConverterTest.java new file mode 100644 index 000000000000..2ff557e00a10 --- /dev/null +++ b/src/test/java/com/thealgorithms/conversions/OctalToBinaryConverterTest.java @@ -0,0 +1,15 @@ +package com.thealgorithms.conversions; + +import static org.junit.jupiter.api.Assertions.*; + +import org.junit.jupiter.api.Test; + +public class OctalToBinaryConverterTest { + @Test + public void testConvertOctalToBinary() { + assertEquals(101, OctalToBinary.convertOctalToBinary(5)); + assertEquals(1001, OctalToBinary.convertOctalToBinary(11)); + assertEquals(101010, OctalToBinary.convertOctalToBinary(52)); + assertEquals(110, OctalToBinary.convertOctalToBinary(6)); + } +} From 723a2191840915bf0c9b86e4a8efc8670bedd82b Mon Sep 17 00:00:00 2001 From: BamaCharanChhandogi Date: Sun, 28 May 2023 18:28:53 +0530 Subject: [PATCH 03/10] rename OctalToBinaryTest --- .../{OctalToBinaryConverterTest.java => OctalToBinaryTest.java} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename src/test/java/com/thealgorithms/conversions/{OctalToBinaryConverterTest.java => OctalToBinaryTest.java} (91%) diff --git a/src/test/java/com/thealgorithms/conversions/OctalToBinaryConverterTest.java b/src/test/java/com/thealgorithms/conversions/OctalToBinaryTest.java similarity index 91% rename from src/test/java/com/thealgorithms/conversions/OctalToBinaryConverterTest.java rename to src/test/java/com/thealgorithms/conversions/OctalToBinaryTest.java index 2ff557e00a10..6c7fe8702b68 100644 --- a/src/test/java/com/thealgorithms/conversions/OctalToBinaryConverterTest.java +++ b/src/test/java/com/thealgorithms/conversions/OctalToBinaryTest.java @@ -4,7 +4,7 @@ import org.junit.jupiter.api.Test; -public class OctalToBinaryConverterTest { +public class OctalToBinaryTest { @Test public void testConvertOctalToBinary() { assertEquals(101, OctalToBinary.convertOctalToBinary(5)); From beaf6290150688f4515116ac175cb5b2c18ff4ba Mon Sep 17 00:00:00 2001 From: Bama Charan Chhandogi Date: Sun, 28 May 2023 18:48:19 +0530 Subject: [PATCH 04/10] Update OctalToBinary.java --- src/main/java/com/thealgorithms/conversions/OctalToBinary.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/thealgorithms/conversions/OctalToBinary.java b/src/main/java/com/thealgorithms/conversions/OctalToBinary.java index fa1ca10a482d..1c9fd310ea50 100644 --- a/src/main/java/com/thealgorithms/conversions/OctalToBinary.java +++ b/src/main/java/com/thealgorithms/conversions/OctalToBinary.java @@ -2,7 +2,7 @@ import java.util.Scanner; /** - * Converts any Binary Number to a Hexadecimal Number + * Converts any Octal Number to a Binary Number * * @author Bama Charan Chhandogi */ From 080df2696baa5eb2e4cdca0afcd7e1c50aeb6350 Mon Sep 17 00:00:00 2001 From: Andrii Siriak Date: Sun, 28 May 2023 23:43:16 +0300 Subject: [PATCH 05/10] Update src/main/java/com/thealgorithms/conversions/OctalToBinary.java --- .../com/thealgorithms/conversions/OctalToBinary.java | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/src/main/java/com/thealgorithms/conversions/OctalToBinary.java b/src/main/java/com/thealgorithms/conversions/OctalToBinary.java index 1c9fd310ea50..711381d82a8e 100644 --- a/src/main/java/com/thealgorithms/conversions/OctalToBinary.java +++ b/src/main/java/com/thealgorithms/conversions/OctalToBinary.java @@ -8,17 +8,6 @@ */ public class OctalToBinary { - public static void main(String[] args) { - Scanner scanner = new Scanner(System.in); - System.out.print("Enter an octal number: "); - int octalNumber = scanner.nextInt(); - - // Convert octal to binary - long binaryNumber = convertOctalToBinary(octalNumber); - - System.out.println("Binary equivalent: " + binaryNumber); - } - public static long convertOctalToBinary(int octalNumber) { long binaryNumber = 0; int digitPosition = 1; From c07ea740132ca3050c2e334f08ab5efdf576195b Mon Sep 17 00:00:00 2001 From: BamaCharanChhandogi Date: Sat, 5 Aug 2023 23:10:34 +0530 Subject: [PATCH 06/10] M-Coloring Problem solved --- .../thealgorithms/backtracking/MColoring.java | 71 +++++++++++++++++++ .../conversions/OctalToBinary.java | 42 ----------- .../backtracking/MColoringTest.java | 57 +++++++++++++++ .../conversions/OctalToBinaryTest.java | 15 ---- 4 files changed, 128 insertions(+), 57 deletions(-) create mode 100644 src/main/java/com/thealgorithms/backtracking/MColoring.java delete mode 100644 src/main/java/com/thealgorithms/conversions/OctalToBinary.java create mode 100644 src/test/java/com/thealgorithms/backtracking/MColoringTest.java delete mode 100644 src/test/java/com/thealgorithms/conversions/OctalToBinaryTest.java diff --git a/src/main/java/com/thealgorithms/backtracking/MColoring.java b/src/main/java/com/thealgorithms/backtracking/MColoring.java new file mode 100644 index 000000000000..2a1a75b47387 --- /dev/null +++ b/src/main/java/com/thealgorithms/backtracking/MColoring.java @@ -0,0 +1,71 @@ +package com.thealgorithms.backtracking; + +import java.io.*; +import java.util.*; + +/** + * @author Bama Charan Chhandogi (https://github.com/BamaCharanChhandogi) + */ +class Node { + int color = 1; + Set edges = new HashSet(); +} + +public class MColoring { + static int possiblePaint(ArrayList nodes, int n, int m) { + + // Create a visited array of n nodes + ArrayList visited = new ArrayList(); + for (int i = 0; i < n + 1; i++) { + visited.add(0); + } + + // maxColors used till now are 1 as + // all nodes are painted color 1 + int maxColors = 1; + + for (int sv = 1; sv <= n; sv++) { + if (visited.get(sv) > 0) { + continue; + } + + // If the starting point is unvisited, + // mark it visited and push it in queue + visited.set(sv, 1); + Queue q = new LinkedList<>(); + q.add(sv); + + // BFS + while (q.size() != 0) { + int top = q.peek(); + q.remove(); + + // Checking all adjacent nodes + // to "top" edge in our queue + for (int it : nodes.get(top).edges) { + + // If the color of the + // adjacent node is same, increase it by + // 1 + if (nodes.get(top).color == nodes.get(it).color) { + nodes.get(it).color += 1; + } + + // If number of colors used exceeds m, + // return 0 + maxColors = Math.max(maxColors, Math.max(nodes.get(top).color, nodes.get(it).color)); + if (maxColors > m) + return 0; + + // If the adjacent node is not visited, + // mark it visited and push it in queue + if (visited.get(it) == 0) { + visited.set(it, 1); + q.remove(it); + } + } + } + } + return 1; + } +} diff --git a/src/main/java/com/thealgorithms/conversions/OctalToBinary.java b/src/main/java/com/thealgorithms/conversions/OctalToBinary.java deleted file mode 100644 index 711381d82a8e..000000000000 --- a/src/main/java/com/thealgorithms/conversions/OctalToBinary.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.thealgorithms.conversions; -import java.util.Scanner; - -/** - * Converts any Octal Number to a Binary Number - * - * @author Bama Charan Chhandogi - */ - -public class OctalToBinary { - public static long convertOctalToBinary(int octalNumber) { - long binaryNumber = 0; - int digitPosition = 1; - - while (octalNumber != 0) { - int octalDigit = octalNumber % 10; - long binaryDigit = convertOctalDigitToBinary(octalDigit); - - binaryNumber += binaryDigit * digitPosition; - - octalNumber /= 10; - digitPosition *= 1000; // Move to the next group of 3 binary digits - } - - return binaryNumber; - } - - public static long convertOctalDigitToBinary(int octalDigit) { - long binaryDigit = 0; - int binaryMultiplier = 1; - - while (octalDigit != 0) { - int octalDigitRemainder = octalDigit % 2; - binaryDigit += octalDigitRemainder * binaryMultiplier; - - octalDigit /= 2; - binaryMultiplier *= 10; - } - - return binaryDigit; - } -} diff --git a/src/test/java/com/thealgorithms/backtracking/MColoringTest.java b/src/test/java/com/thealgorithms/backtracking/MColoringTest.java new file mode 100644 index 000000000000..4271737fb441 --- /dev/null +++ b/src/test/java/com/thealgorithms/backtracking/MColoringTest.java @@ -0,0 +1,57 @@ +package com.thealgorithms.backtracking; + +import static org.junit.jupiter.api.Assertions.*; +import java.util.*; +import org.junit.jupiter.api.Test; + +/** + * @author Bama Charan Chhandogi (https://github.com/BamaCharanChhandogi) + */ +class MColoringTest { + + @Test + void testGraphColoring1() { + int n = 4; + int[][] graph = { { 0, 1, 1, 1 }, { 1, 0, 1, 0 }, { 1, 1, 0, 1 }, { 1, 0, 1, 0 } }; + int m = 3; // Number of colors + + assertEquals(1, MColoring.possiblePaint(createGraph(graph), n, m)); + } + + @Test + void testGraphColoring2() { + int n = 5; + int[][] graph = { { 0, 1, 1, 1, 0 }, { 1, 0, 0, 1, 0 }, { 1, 0, 0, 1, 1 }, { 1, 1, 1, 0, 1 }, + { 0, 0, 1, 1, 0 } }; + int m = 2; // Number of colors + + assertEquals(1, MColoring.possiblePaint(createGraph(graph), n, m)); + } + + @Test + void testGraphColoring3() { + int n = 3; + int[][] graph = { { 0, 1, 1 }, { 1, 0, 1 }, { 1, 1, 0 } }; + int m = 2; // Number of colors + + assertEquals(1, MColoring.possiblePaint(createGraph(graph), n, m)); + } + + private ArrayList createGraph(int[][] graph) { + int n = graph.length; + ArrayList nodes = new ArrayList<>(n + 1); + for (int i = 0; i <= n; i++) { + nodes.add(new Node()); + } + + for (int i = 0; i < n; i++) { + for (int j = i + 1; j < n; j++) { // Use j = i + 1 to avoid setting edges twice + if (graph[i][j] > 0) { + nodes.get(i + 1).edges.add(j + 1); + nodes.get(j + 1).edges.add(i + 1); + } + } + } + return nodes; + } +} diff --git a/src/test/java/com/thealgorithms/conversions/OctalToBinaryTest.java b/src/test/java/com/thealgorithms/conversions/OctalToBinaryTest.java deleted file mode 100644 index 6c7fe8702b68..000000000000 --- a/src/test/java/com/thealgorithms/conversions/OctalToBinaryTest.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.thealgorithms.conversions; - -import static org.junit.jupiter.api.Assertions.*; - -import org.junit.jupiter.api.Test; - -public class OctalToBinaryTest { - @Test - public void testConvertOctalToBinary() { - assertEquals(101, OctalToBinary.convertOctalToBinary(5)); - assertEquals(1001, OctalToBinary.convertOctalToBinary(11)); - assertEquals(101010, OctalToBinary.convertOctalToBinary(52)); - assertEquals(110, OctalToBinary.convertOctalToBinary(6)); - } -} From 9ffefc70368af756b05460b8afb3890416399f7e Mon Sep 17 00:00:00 2001 From: BamaCharanChhandogi Date: Sat, 5 Aug 2023 23:54:42 +0530 Subject: [PATCH 07/10] linter Problem solve --- .../thealgorithms/backtracking/MColoring.java | 86 +++++++++---------- .../backtracking/MColoringTest.java | 12 +-- 2 files changed, 49 insertions(+), 49 deletions(-) diff --git a/src/main/java/com/thealgorithms/backtracking/MColoring.java b/src/main/java/com/thealgorithms/backtracking/MColoring.java index 2a1a75b47387..4aafee97ac6f 100644 --- a/src/main/java/com/thealgorithms/backtracking/MColoring.java +++ b/src/main/java/com/thealgorithms/backtracking/MColoring.java @@ -7,65 +7,65 @@ * @author Bama Charan Chhandogi (https://github.com/BamaCharanChhandogi) */ class Node { - int color = 1; - Set edges = new HashSet(); + int color = 1; + Set edges = new HashSet(); } public class MColoring { - static int possiblePaint(ArrayList nodes, int n, int m) { + static int possiblePaint(ArrayList nodes, int n, int m) { // Create a visited array of n nodes - ArrayList visited = new ArrayList(); - for (int i = 0; i < n + 1; i++) { - visited.add(0); - } + ArrayList visited = new ArrayList(); + for (int i = 0; i < n + 1; i++) { + visited.add(0); + } // maxColors used till now are 1 as - // all nodes are painted color 1 - int maxColors = 1; + // all nodes are painted color 1 + int maxColors = 1; for (int sv = 1; sv <= n; sv++) { - if (visited.get(sv) > 0) { - continue; - } + if (visited.get(sv) > 0) { + continue; + } // If the starting point is unvisited, - // mark it visited and push it in queue - visited.set(sv, 1); - Queue q = new LinkedList<>(); - q.add(sv); + // mark it visited and push it in queue + visited.set(sv, 1); + Queue q = new LinkedList<>(); + q.add(sv); // BFS - while (q.size() != 0) { - int top = q.peek(); - q.remove(); + while (q.size() != 0) { + int top = q.peek(); + q.remove(); // Checking all adjacent nodes - // to "top" edge in our queue - for (int it : nodes.get(top).edges) { + // to "top" edge in our queue + for (int it : nodes.get(top).edges) { - // If the color of the - // adjacent node is same, increase it by - // 1 - if (nodes.get(top).color == nodes.get(it).color) { - nodes.get(it).color += 1; - } + // If the color of the + // adjacent node is same, increase it by + // 1 + if (nodes.get(top).color == nodes.get(it).color) { + nodes.get(it).color += 1; + } - // If number of colors used exceeds m, - // return 0 - maxColors = Math.max(maxColors, Math.max(nodes.get(top).color, nodes.get(it).color)); - if (maxColors > m) - return 0; + // If number of colors used exceeds m, + // return 0 + maxColors = Math.max(maxColors, Math.max(nodes.get(top).color, nodes.get(it).color)); + if (maxColors > m) + return 0; - // If the adjacent node is not visited, - // mark it visited and push it in queue - if (visited.get(it) == 0) { - visited.set(it, 1); - q.remove(it); - } - } - } - } - return 1; - } + // If the adjacent node is not visited, + // mark it visited and push it in queue + if (visited.get(it) == 0) { + visited.set(it, 1); + q.add(it); + } + } + } + } + return 1; + } } diff --git a/src/test/java/com/thealgorithms/backtracking/MColoringTest.java b/src/test/java/com/thealgorithms/backtracking/MColoringTest.java index 4271737fb441..606193b05197 100644 --- a/src/test/java/com/thealgorithms/backtracking/MColoringTest.java +++ b/src/test/java/com/thealgorithms/backtracking/MColoringTest.java @@ -1,6 +1,7 @@ package com.thealgorithms.backtracking; import static org.junit.jupiter.api.Assertions.*; + import java.util.*; import org.junit.jupiter.api.Test; @@ -12,7 +13,7 @@ class MColoringTest { @Test void testGraphColoring1() { int n = 4; - int[][] graph = { { 0, 1, 1, 1 }, { 1, 0, 1, 0 }, { 1, 1, 0, 1 }, { 1, 0, 1, 0 } }; + int[][] graph = {{0, 1, 1, 1}, {1, 0, 1, 0}, {1, 1, 0, 1}, {1, 0, 1, 0}}; int m = 3; // Number of colors assertEquals(1, MColoring.possiblePaint(createGraph(graph), n, m)); @@ -21,20 +22,19 @@ void testGraphColoring1() { @Test void testGraphColoring2() { int n = 5; - int[][] graph = { { 0, 1, 1, 1, 0 }, { 1, 0, 0, 1, 0 }, { 1, 0, 0, 1, 1 }, { 1, 1, 1, 0, 1 }, - { 0, 0, 1, 1, 0 } }; + int[][] graph = {{0, 1, 1, 1, 0}, {1, 0, 0, 1, 0}, {1, 0, 0, 1, 1}, {1, 1, 1, 0, 1}, {0, 0, 1, 1, 0}}; int m = 2; // Number of colors - assertEquals(1, MColoring.possiblePaint(createGraph(graph), n, m)); + assertEquals(0, MColoring.possiblePaint(createGraph(graph), n, m)); } @Test void testGraphColoring3() { int n = 3; - int[][] graph = { { 0, 1, 1 }, { 1, 0, 1 }, { 1, 1, 0 } }; + int[][] graph = {{0, 1, 1}, {1, 0, 1}, {1, 1, 0}}; int m = 2; // Number of colors - assertEquals(1, MColoring.possiblePaint(createGraph(graph), n, m)); + assertEquals(0, MColoring.possiblePaint(createGraph(graph), n, m)); } private ArrayList createGraph(int[][] graph) { From a1a2b1c4322b33af78c9f73023a9f25299d4e134 Mon Sep 17 00:00:00 2001 From: BamaCharanChhandogi Date: Sun, 6 Aug 2023 00:10:43 +0530 Subject: [PATCH 08/10] linter problem solved-2 --- .../com/thealgorithms/backtracking/MColoring.java | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/thealgorithms/backtracking/MColoring.java b/src/main/java/com/thealgorithms/backtracking/MColoring.java index 4aafee97ac6f..c9bc02008058 100644 --- a/src/main/java/com/thealgorithms/backtracking/MColoring.java +++ b/src/main/java/com/thealgorithms/backtracking/MColoring.java @@ -14,33 +14,33 @@ class Node { public class MColoring { static int possiblePaint(ArrayList nodes, int n, int m) { - // Create a visited array of n nodes + // Create a visited array of n nodes ArrayList visited = new ArrayList(); for (int i = 0; i < n + 1; i++) { visited.add(0); } - // maxColors used till now are 1 as + // maxColors used till now are 1 as // all nodes are painted color 1 int maxColors = 1; - for (int sv = 1; sv <= n; sv++) { + for (int sv = 1; sv <= n; sv++) { if (visited.get(sv) > 0) { continue; } - // If the starting point is unvisited, + // If the starting point is unvisited, // mark it visited and push it in queue visited.set(sv, 1); Queue q = new LinkedList<>(); q.add(sv); - // BFS + // BFS while (q.size() != 0) { int top = q.peek(); q.remove(); - // Checking all adjacent nodes + // Checking all adjacent nodes // to "top" edge in our queue for (int it : nodes.get(top).edges) { @@ -54,8 +54,7 @@ static int possiblePaint(ArrayList nodes, int n, int m) { // If number of colors used exceeds m, // return 0 maxColors = Math.max(maxColors, Math.max(nodes.get(top).color, nodes.get(it).color)); - if (maxColors > m) - return 0; + if (maxColors > m) return 0; // If the adjacent node is not visited, // mark it visited and push it in queue From cc82409a7d6bb15756ed02bb59addcd4ecbf81db Mon Sep 17 00:00:00 2001 From: github-actions <${GITHUB_ACTOR}@users.noreply.github.com> Date: Sat, 5 Aug 2023 18:49:32 +0000 Subject: [PATCH 09/10] Update directory --- DIRECTORY.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/DIRECTORY.md b/DIRECTORY.md index 931e76957ee3..6d38a623ae64 100644 --- a/DIRECTORY.md +++ b/DIRECTORY.md @@ -13,6 +13,7 @@ * [FloodFill](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/backtracking/FloodFill.java) * [KnightsTour](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/backtracking/KnightsTour.java) * [MazeRecursion](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/backtracking/MazeRecursion.java) + * [MColoring](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/backtracking/MColoring.java) * [NQueens](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/backtracking/NQueens.java) * [Permutation](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/backtracking/Permutation.java) * [PowerSum](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/backtracking/PowerSum.java) @@ -522,6 +523,7 @@ * [CombinationTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/backtracking/CombinationTest.java) * [FloodFillTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/backtracking/FloodFillTest.java) * [MazeRecursionTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/backtracking/MazeRecursionTest.java) + * [MColoringTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/backtracking/MColoringTest.java) * [PermutationTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/backtracking/PermutationTest.java) * [PowerSumTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/backtracking/PowerSumTest.java) * [WordSearchTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/backtracking/WordSearchTest.java) @@ -645,6 +647,7 @@ * [FrizzyNumberTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/maths/FrizzyNumberTest.java) * [GaussianTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/maths/GaussianTest.java) * [GCDTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/maths/GCDTest.java) + * [GenericRootTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/maths/GenericRootTest.java) * [HarshadNumberTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/maths/HarshadNumberTest.java) * [HeronsFormulaTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/maths/HeronsFormulaTest.java) * [JosephusProblemTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/maths/JosephusProblemTest.java) @@ -665,6 +668,7 @@ * [PerfectSquareTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/maths/PerfectSquareTest.java) * [PerimeterTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/maths/PerimeterTest.java) * [PollardRhoTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/maths/PollardRhoTest.java) + * [PowerOfTwoOrNotTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/maths/PowerOfTwoOrNotTest.java) * [PrimeCheckTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/maths/PrimeCheckTest.java) * [PrimeFactorizationTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/maths/PrimeFactorizationTest.java) * [PronicNumberTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/maths/PronicNumberTest.java) From baae722bee6059ce1ab3f80da831a7ebcb1dc286 Mon Sep 17 00:00:00 2001 From: Andrii Siriak Date: Sat, 5 Aug 2023 21:53:36 +0300 Subject: [PATCH 10/10] Update DIRECTORY.md --- DIRECTORY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DIRECTORY.md b/DIRECTORY.md index 6d38a623ae64..e1a6297c0140 100644 --- a/DIRECTORY.md +++ b/DIRECTORY.md @@ -182,7 +182,7 @@ * [TrieImp](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/datastructures/trees/TrieImp.java) * [VerticalOrderTraversal](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/datastructures/trees/VerticalOrderTraversal.java) * [ZigzagTraversal](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/datastructures/trees/ZigzagTraversal.java) - * devutils + * utils * entities * [ProcessDetails](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/devutils/entities/ProcessDetails.java) * nodes