自己做网站 什么,江苏太平洋建设集团官方网站,版面设计软件,福州网站开发招聘n 位格雷码序列 是一个由 2n 个整数组成的序列#xff0c;其中#xff1a;
每个整数都在范围 [0, 2n - 1] 内#xff08;含 0 和 2n - 1#xff09;第一个整数是 0一个整数在序列中出现 不超过一次每对 相邻 整数的二进制表示 恰好一位不同 #xff0c;且第一个 和 最后一…n 位格雷码序列 是一个由 2n 个整数组成的序列其中
每个整数都在范围 [0, 2n - 1] 内含 0 和 2n - 1第一个整数是 0一个整数在序列中出现 不超过一次每对 相邻 整数的二进制表示 恰好一位不同 且第一个 和 最后一个 整数的二进制表示 恰好一位不同
给你一个整数 n 返回任一有效的 n 位格雷码序列 。 示例 1
输入n 2
输出[0,1,3,2]
解释
[0,1,3,2] 的二进制表示是 [00,01,11,10] 。
- 00 和 01 有一位不同
- 01 和 11 有一位不同
- 11 和 10 有一位不同
- 10 和 00 有一位不同
[0,2,3,1] 也是一个有效的格雷码序列其二进制表示是 [00,10,11,01] 。
- 00 和 10 有一位不同
- 10 和 11 有一位不同
- 11 和 01 有一位不同
- 01 和 00 有一位不同示例 2
输入n 1
输出[0,1]提示
1 n 16
思路
对于n位二进制码从右到左以0到n-1编号如果二进制码的第i位和第i1位相同则格雷码的第i位为0否则为1 class Solution {
public:vectorint grayCode(int n) {vectorint res;int sizepow(2,n);for(int i0;isize;i){res.push_back(i^(i1));}return res;}
};