89. 格雷編碼(medium)

格雷編碼是一個(gè)二進(jìn)制數(shù)字系統(tǒng),在該系統(tǒng)中,兩個(gè)連續(xù)的數(shù)值僅有一個(gè)位數(shù)的差異。
給定一個(gè)代表編碼總位數(shù)的非負(fù)整數(shù) n,打印其格雷編碼序列。格雷編碼序列必須以 0 開(kāi)頭。
示例 1:
輸入: 2
輸出: [0,1,3,2]
解釋:
00 - 0
01 - 1
11 - 3
10 - 2
對(duì)于給定的 n,其格雷編碼序列并不唯一。
例如,[0,2,3,1] 也是一個(gè)有效的格雷編碼序列。
00 - 0
10 - 2
11 - 3
01 - 1

  • show the code:
class Solution:
    def grayCode(self, n: int) -> List[int]:
        r = [0]
        for i in range(n):
            r.extend([x|1<<i for x in r[::-1]])
        return r
  • 此題考察二進(jìn)制以及python中的位運(yùn)算,有關(guān)python位運(yùn)算如下圖:


    位運(yùn)算
  • 主要邏輯為x|1<<i代表在原來(lái)的x前面添加一個(gè)1得到十進(jìn)制結(jié)果。
  • 其實(shí)此題的規(guī)律即為:這一步結(jié)果 = 上一步結(jié)果 + 上一步結(jié)果的鏡像并在每個(gè)二進(jìn)制數(shù)字前面加一位1
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、Python簡(jiǎn)介和環(huán)境搭建以及pip的安裝 4課時(shí)實(shí)驗(yàn)課主要內(nèi)容 【Python簡(jiǎn)介】: Python 是一個(gè)...
    _小老虎_閱讀 6,334評(píng)論 0 10
  • 網(wǎng)站亂碼問(wèn)題我們會(huì)經(jīng)常碰到,大多見(jiàn)于非英文的中文字符或其他字符亂碼,而且,這類問(wèn)題常常是因?yàn)榫幋a方式問(wèn)題,主要原因...
    波段頂?shù)?/span>閱讀 3,328評(píng)論 1 9
  • Python標(biāo)識(shí)符 在 Python 里,標(biāo)識(shí)符有字母、數(shù)字、下劃線組成。在 Python 中,所有標(biāo)識(shí)符可以包括...
    tianyi6677閱讀 1,161評(píng)論 0 3
  • 最近好忙!我發(fā)消息說(shuō):你能笑一下嗎?你問(wèn):為什么?我回:泡的咖啡忘記了放糖,好苦…… 盯著屏幕,我聽(tīng)到了你的笑聲……
    Ant爬山閱讀 187評(píng)論 0 0
  • 因?yàn)橐徊坑捌矚g一個(gè)演員,這樣的經(jīng)驗(yàn)應(yīng)該很多人都有吧。 或許當(dāng)時(shí)因?yàn)樗每?,或許只是那一瞬間打動(dòng)了你,以至于多年...
    麻婆電影閱讀 631評(píng)論 0 1

友情鏈接更多精彩內(nèi)容