LeetCode OJ:Gray Code

1136 단어 LeetCode
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.
For example, given n = 2, return  [0,1,3,2] . Its gray code sequence is:
00 - 0
01 - 1
11 - 3
10 - 2

Note: For a given n, a gray code sequence is not uniquely defined.
For example,  [0,2,3,1]  is also a valid gray code sequence according to the above definition.
For now, the judge is able to judge based on one instance of gray code sequence. Sorry about that.
알고리즘 사상:
제목의 뜻은 사실 0에서 2^n-1의 그레코드를 구하는 거예요.
그레이코드는 첫 번째 수가 변하지 않는다는 것을 알아차린 다음에 뒤의 수가 앞의 수와 다르거나 사실은 이 수와 이 수가 오른쪽으로 한 자리로 이동하는 값이 다르거나
class Solution {
public:
    vector<int> grayCode(int n) {
        vector<int> result;
        int len=1<<n;
        for(int i=0;i<len;i++){
            result.push_back(i^i>>1);
        }
        return result;
    }
};

좋은 웹페이지 즐겨찾기