Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 1e06cbc

Browse files
committed
feat: 格雷编码
1 parent 268a263 commit 1e06cbc

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

格雷编码.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
/**
2+
* @param {number} n
3+
* @return {number[]}
4+
*/
5+
var grayCode = function(n) {
6+
// 用来算输入为n的格雷编码序列
7+
let make = n => {
8+
if (n === 1) {
9+
return ["0", "1"]
10+
} else {
11+
let prev = make(n - 1)
12+
let result = []
13+
let max = Math.pow(2, n) - 1
14+
for (let i = 0, len = prev.length; i < len; i++) {
15+
result[i] = `0${prev[i]}`
16+
result[max - i] = `1${prev[i]}`
17+
}
18+
return result
19+
}
20+
}
21+
return make(n).map(v => parseInt(v, 2))
22+
}
23+
console.log(grayCode(3))

0 commit comments

Comments
 (0)