89. Gray Code
Description
The gray code is a binary numeral system where two successive values differ in only one bit.
Given a non-negative integer n representing the total number of bits in the code, print the sequence of gray code. A gray code sequence must begin with 0.
Constraints
Approach
Links
YouTube
Examples
Input: 2
Output: [0, 1, 3, 2]
Explanation:
00 - 0
01 - 1
11 - 3
10 - 2
For a given n, a gray code sequence may not be uniquely defined.
For example, [0,2,3,1] is also a valid gray code sequence.
00 - 0
10 - 2
11 - 3
01 - 1
Solutions
/**
* Time complexity :
* Space complexity :
*/
class Solution {
public List<Integer> grayCode(int n) {
int noOfGrays = (1 << n);
return IntStream.range(0, noOfGrays)
.mapToObj(i -> (i ^ (i>>1)))
.collect(Collectors.toList());
}
}
Follow up
A backtracking approach to generate n bit Gray Codes - GFG
Last updated
Was this helpful?