网站建设 问答,wordpress页面回收站位置,关键字优化软件,网站数据展示给你两个整数 n 和 start。你的任务是返回任意 (0,1,2,…,2^n-1) 的排列 p#xff0c;并且满足#xff1a;
p[0] start p[i] 和 p[i1] 的二进制表示形式只有一位不同 p[0] 和 p[2^n -1] 的二进制表示形式也只有一位不同
示例 1#xff1a;
输入#xff1a;n 2, start …给你两个整数 n 和 start。你的任务是返回任意 (0,1,2,…,2^n-1) 的排列 p并且满足
p[0] start p[i] 和 p[i1] 的二进制表示形式只有一位不同 p[0] 和 p[2^n -1] 的二进制表示形式也只有一位不同
示例 1
输入n 2, start 3 输出[3,2,0,1] 解释这个排列的二进制表示是 (11,10,00,01) 所有的相邻元素都有一位是不同的另一个有效的排列是 [3,1,0,2] 示例 2
输出n 3, start 2 输出[2,6,7,5,4,0,1,3] 解释这个排列的二进制表示是 (010,110,111,101,100,000,001,011)
提示
1 n 16 0 start 2^n public ListInteger circularPermutation(int n, int start) {ListInteger resnew ArrayList();for (int i 0; i (1 n); i) {res.add(i^(i1)^start);}return res;}func circularPermutation(n int, start int) []int {length:1nres : make([]int, length)for i:0;ilength;i{res[i]i^(i/2)^start}return res
}