Skip to content

Commit

Permalink
Merge pull request #69 from chandrachood932c/patch-1
Browse files Browse the repository at this point in the history
Gray Code.cpp
  • Loading branch information
avastino7 authored Oct 31, 2022
2 parents 3c576cb + 3baf487 commit e298f87
Showing 1 changed file with 41 additions and 0 deletions.
41 changes: 41 additions & 0 deletions Gray Code.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
/*
An n-bit gray code sequence is a sequence of 2n integers where:
Every integer is in the inclusive range [0, 2n - 1],
The first integer is 0,
An integer appears no more than once in the sequence,
The binary representation of every pair of adjacent integers differs by exactly one bit, and
The binary representation of the first and last integers differs by exactly one bit.
Given an integer n, return any valid n-bit gray code sequence.
Example 1:
Input: n = 2
Output: [0,1,3,2]
Explanation:
The binary representation of [0,1,3,2] is [00,01,11,10].
- 00 and 01 differ by one bit
- 01 and 11 differ by one bit
- 11 and 10 differ by one bit
- 10 and 00 differ by one bit
[0,2,3,1] is also a valid gray code sequence, whose binary representation is [00,10,11,01].
- 00 and 10 differ by one bit
- 10 and 11 differ by one bit
- 11 and 01 differ by one bit
- 01 and 00 differ by one bit
*/

class Solution {
public:
vector<int> grayCode(int n) {
vector<int>v;
for(int i=0; i<1<<n; i++) {
v.push_back(i^i>>1);
}
return v;
}
};

0 comments on commit e298f87

Please sign in to comment.