5 1 vote
Article Rating
Subscribe
提醒
guest
6 评论
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
sunznx
// 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操作的都比较简单

# Python
class Solution:
    def circularPermutation(self, n: int, start: int) -> List[int]:
        return [start ^ i ^ i >> 1 for i in range(2**n)]

va9ue

打卡
虽然不会,记录一下,培养个每天刷的习惯。

Last edited 1 月 之前 by va9ue
Xiaoxu HU

这个是一个数学知识,可以简单了解下即可~