題目描述:
代碼實現:
- 應用格林編碼的公式,使用位運算的方式,將i右移一位並與原來的i做異或運算即得到結果。
- 時間複雜度:O(2^n)
/**
* @param {number} n
* @return {number[]}
*/
var grayCode = function(n) {
var res = []
for (var i = 0; i < Math.pow(2, n); i++) {
res.push((i >> 1) ^ i)
}
return res
};