From 37dcfa81919c353864cbcc1a7e5d0d36963bd381 Mon Sep 17 00:00:00 2001 From: Rishabh Gupta <52212344+rishabh217@users.noreply.github.com> Date: Sat, 16 Oct 2021 12:00:30 +0530 Subject: [PATCH] Added GrayCode.java --- Programming_Languages/Java/GrayCode.java | 35 ++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 Programming_Languages/Java/GrayCode.java diff --git a/Programming_Languages/Java/GrayCode.java b/Programming_Languages/Java/GrayCode.java new file mode 100644 index 0000000..1261cad --- /dev/null +++ b/Programming_Languages/Java/GrayCode.java @@ -0,0 +1,35 @@ +import java.util.*; + +public class GrayCode { + + public static List grayCode(int n) { + List< Integer> ans = new ArrayList< >(); + if (n == 0) { + ans.add(0); + return ans; + } + backtrack(ans, n); + return ans; + } + + static int temp; + + private static void backtrack(List ans, int n) { + if (n == 0) { + ans.add(temp); + return; + } + + backtrack(ans, n - 1); + + temp = temp ^ (1 << (n - 1)); + backtrack(ans, n - 1); + } + + public static void main(String[] args) { + Scanner scn = new Scanner(System.in); + List ans = grayCode(scn.nextInt()); + Collections.sort(ans); + System.out.println(ans); + } +} \ No newline at end of file