LeetCode89 Gray Code

题目:

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(Medium)

For example, given n = 2, return [0,1,3,2]. Its gray code sequence is:

00 - 0
01 - 1
11 - 3
10 - 2

分析:

考察三位的格雷码和两位的格雷码如下:

00 01 11 10;

000 001 011 010 110 111 101 100;

可以看出如下规律,三位的格雷码是二位的格雷码前面加上0,和倒序二维格雷码前面加上1得到的。

所以要求n为格雷码,只需要在所有n-1位格雷码前面加0,并在倒序的所有n-1位格雷码前面加1即可。

代码:

 1 class Solution {
 2 public:
 3     vector<int> grayCode(int n) {
 4         if (n == 0) {
 5             return vector<int> {0};
 6         }
 7         vector<int> temp = grayCode(n - 1);
 8         vector<int> result;
 9         for (int i = 0; i < temp.size(); ++i) {
10             result.push_back(temp[i]);
11         }
12         for (int i = temp.size() - 1; i >= 0; --i) {
13             result.push_back(temp[i] + pow(2, n - 1));
14         }
15         return result;
16     }
17 };
时间: 2024-10-18 10:13:57

LeetCode89 Gray Code的相关文章

LeetCode89/60 Gray Code/Permutation Sequence--迭代

一:Leetcode 89 Gray Code 题目: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 seq

leetcode笔记:Gray Code(2016腾讯软件开发笔试题)

一.题目描述 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 wit

LeetCode:Gray Code

1.题目名称 Gray Code(格雷码) 2.题目地址 https://leetcode.com/problems/gray-code/ 3.题目内容 英文: 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

hdu 5375 Gray code(DP)

hdu 5375 Gray code Problem Description The reflected binary code, also known as Gray code after Frank Gray, is a binary numeral system where two successive values differ in only onebit (binary digit). The reflected binary code was originally designed

LeetCode --- 89. Gray Code

题目链接:Gray Code 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 b

【leetcode】Gray Code

Gray Code 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

LeetCode: Gray Code [089]

[题目] 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

leetcode 89 Gray Code ----- java

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. Fo

【LeetCode】89. Gray Code

题目: 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