You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@return {number[]}
*/
// 二进制数转格雷码
// var grayCode = function(n) {
// const ret = []
// for (let i = 0; i < 1 << n; i++) {
// ret.push((i >> 1) ^ i)
// }
// return ret
// };
// 递归版
// var grayCode = function(n) {
// if (n === 0) return [0]
// if (n === 1) return [0, 1]
// let add = 1 << (n-1)
// let lastStatus = grayCode(n - 1)
// let res = [...lastStatus]
// for (let i = lastStatus.length - 1; i >= 0; i--) {
// res.push(lastStatus[i] + add)
// }
// return res
// }
var grayCode = function(n) {
let ans = [0]
let pre = 1
for (let i = 0; i < n; i++) {
for (let j = ans.length - 1; j >= 0; j--) {
ans.push(pre + ans[j])
}
pre <<= 1
}
return ans
}
The text was updated successfully, but these errors were encountered:
/**
*/
// 二进制数转格雷码
// var grayCode = function(n) {
// const ret = []
// for (let i = 0; i < 1 << n; i++) {
// ret.push((i >> 1) ^ i)
// }
// return ret
// };
// 递归版
// var grayCode = function(n) {
// if (n === 0) return [0]
// if (n === 1) return [0, 1]
// let add = 1 << (n-1)
// let lastStatus = grayCode(n - 1)
// let res = [...lastStatus]
// for (let i = lastStatus.length - 1; i >= 0; i--) {
// res.push(lastStatus[i] + add)
// }
// return res
// }
var grayCode = function(n) {
let ans = [0]
let pre = 1
for (let i = 0; i < n; i++) {
for (let j = ans.length - 1; j >= 0; j--) {
ans.push(pre + ans[j])
}
pre <<= 1
}
return ans
}
The text was updated successfully, but these errors were encountered: