格雷码
小于 1 分钟
格雷码
- OI Wiki: https://oi-wiki.org/misc/gray-code/
题目 | 难度 | |
---|---|---|
89. 格雷编码 | 中等 | |
1238. 循环码排列 | 中等 |
定义
int g(int n) { return n ^ (n >> 1); }
89. 格雷编码
import java.util.ArrayList;
import java.util.List;
public class Solution89 {
public List<Integer> grayCode(int n) {
List<Integer> resList = new ArrayList<>();
for (int i = 0; i < (1 << n); i++) {
resList.add(g(i));
}
return resList;
}
private int g(int n) {
return n ^ (n >> 1);
}
}
1238. 循环码排列
import java.util.ArrayList;
import java.util.List;
public class Solution1238 {
public List<Integer> circularPermutation(int n, int start) {
List<Integer> resList = new ArrayList<>();
for (int i = 0; i < (1 << n); i++) {
resList.add(start ^ g(i));
}
return resList;
}
private int g(int n) {
return n ^ (n >> 1);
}
}
(全文完)