// CreateTime: 2021-01-18 17:49:51
class Solution {
public:
int p = 0;
vector<int> ans;
vector<int> circularPermutation(int n, int start) {
for (int i = 0; i < (1<<n); i++) {
auto x = (i^(i>>1));
ans.push_back(x);
if (x == start) {
p = i;
}
}
reverse(ans.begin(), ans.begin()+p);
reverse(ans.begin()+p, ans.end());
reverse(ans.begin(), ans.end());
return ans;
}
};
[…] LeetCode 1238. 循环码排列 […]
今天这个基本只能看结果才会做, 需要生成gray code, C语言系有bit操作的都比较简单
是的,我觉得就记住这个知识点就好
打卡
虽然不会,记录一下,培养个每天刷的习惯。
这个是一个数学知识,可以简单了解下即可~