89. Gray Code
发布时间:2020-12-14 04:17:04 所属栏目:大数据 来源:网络整理
导读: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 begi
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. Example 1: Input:?2 Output:? 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 [0,1,2] Example 2: Input:?0 Output:?[0] Explanation: We define the gray code sequence to begin with 0. ? A gray code sequence of n has size = 2n,which for n = 0 the size is 20 = 1. ? Therefore,for n = 0 the gray code sequence is [0]. ? AC code: class Solution { public: vector<int> grayCode(int n) { vector<int> res; for (int i = 0; i < 1 << n; ++i) { res.push_back(i ^ i >> 1); } return res; } }; Runtime:?4 ms,faster than?71.82%?of?C++?online submissions for?Gray Code. ? there are some regular patterns: i = 0 i^i>>1 00 i = 1 i^i>>1 01 i = 2 i^i>>1 11 i = 3 i^i>>1 10 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |