给你两个整数 n 和 start。你的任务是返回任意 (0,1,2,,...,2^n-1) 的排列 p,并且满足:
p[0] = startp[i]和p[i+1]的二进制表示形式只有一位不同p[0]和p[2^n -1]的二进制表示形式也只有一位不同
示例:
1  | 输入:n = 2, start = 3  | 
分析:
1  | 格雷码:(0,1,2,,...,2^n-1) 排列为一圈,相邻两项之间只有一位不同  | 
代码
1  | class Solution {  | 
1  | func circularPermutation(n int, start int) []int {  | 
[原题链接](1238. 循环码排列 - 力扣(Leetcode))
[相似题目](89. 格雷编码 - 力扣(Leetcode))