89. Gray Code

The gray code is a binary numeral system where two successive values differ in only one bit.

Given a non-negative integer n representing the total number of bits in the code, print the sequence of gray code. A gray code sequence must begin with 0.

For example, given n = 2, return [0,1,3,2]. Its gray code sequence is:

00 - 0
01 - 1
11 - 3
10 - 2

Note:
For a given n, a gray code sequence is not uniquely defined.

For example, [0,2,3,1] is also a valid gray code sequence according to the above definition.

For now, the judge is able to judge based on one instance of gray code sequence. Sorry about that.

一刷
題解:
利用backtracking, 從0到n荣暮,先計算用0開頭的數(shù),再計算用1開頭的數(shù), n++, 然后再在原先的基礎上遭殉,開頭添上0或1

Time Complexity - O(2n)

public class Solution {
    public List<Integer> grayCode(int n) {
        List<Integer> res = new ArrayList<Integer>();
        if(n<0) return res;
        if(n == 0){
            res.add(0);
            return res;
        }
        
        List<Integer> last = grayCode(n-1);
        res.addAll(last);//begin with 0
        int prefix = (1<<n-1);// begin with 1
        
        for(int i=last.size() -1; i>=0; i--){
            res.add(last.get(i) + prefix);
        }
        
        return res;
    }
}

二刷
1 <= i < 2^n
G(i) = i ^ i/2;

public class Solution {
    public List<Integer> grayCode(int n) {
        List<Integer> res = new ArrayList<>();
        for(int i=0; i<1<<n; i++){
            res.add(i ^ (i>>1));
        }
        return res;
    }
}
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市胶哲,隨后出現(xiàn)的幾起案子幢码,更是在濱河造成了極大的恐慌熙卡,老刑警劉巖口柳,帶你破解...
    沈念sama閱讀 216,919評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件节芥,死亡現(xiàn)場離奇詭異攒发,居然都是意外死亡调塌,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評論 3 392
  • 文/潘曉璐 我一進店門惠猿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來羔砾,“玉大人,你說我怎么就攤上這事偶妖〗啵” “怎么了?”我有些...
    開封第一講書人閱讀 163,316評論 0 353
  • 文/不壞的土叔 我叫張陵趾访,是天一觀的道長态秧。 經(jīng)常有香客問我,道長扼鞋,這世上最難降的妖魔是什么申鱼? 我笑而不...
    開封第一講書人閱讀 58,294評論 1 292
  • 正文 為了忘掉前任愤诱,我火速辦了婚禮,結果婚禮上捐友,老公的妹妹穿的比我還像新娘淫半。我一直安慰自己,他們只是感情好匣砖,可當我...
    茶點故事閱讀 67,318評論 6 390
  • 文/花漫 我一把揭開白布科吭。 她就那樣靜靜地躺著,像睡著了一般猴鲫。 火紅的嫁衣襯著肌膚如雪对人。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,245評論 1 299
  • 那天变隔,我揣著相機與錄音规伐,去河邊找鬼。 笑死匣缘,一個胖子當著我的面吹牛猖闪,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播肌厨,決...
    沈念sama閱讀 40,120評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼培慌,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了柑爸?” 一聲冷哼從身側響起吵护,我...
    開封第一講書人閱讀 38,964評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎表鳍,沒想到半個月后馅而,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,376評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡譬圣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,592評論 2 333
  • 正文 我和宋清朗相戀三年瓮恭,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片厘熟。...
    茶點故事閱讀 39,764評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡屯蹦,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出绳姨,到底是詐尸還是另有隱情登澜,我是刑警寧澤,帶...
    沈念sama閱讀 35,460評論 5 344
  • 正文 年R本政府宣布飘庄,位于F島的核電站脑蠕,受9級特大地震影響,放射性物質發(fā)生泄漏竭宰。R本人自食惡果不足惜空郊,卻給世界環(huán)境...
    茶點故事閱讀 41,070評論 3 327
  • 文/蒙蒙 一份招、第九天 我趴在偏房一處隱蔽的房頂上張望切揭。 院中可真熱鬧狞甚,春花似錦、人聲如沸廓旬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,697評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽孕豹。三九已至涩盾,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間励背,已是汗流浹背春霍。 一陣腳步聲響...
    開封第一講書人閱讀 32,846評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留叶眉,地道東北人址儒。 一個月前我還...
    沈念sama閱讀 47,819評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像衅疙,于是被迫代替她去往敵國和親莲趣。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,665評論 2 354

推薦閱讀更多精彩內(nèi)容

  • **2014真題Directions:Read the following text. Choose the be...
    又是夜半驚坐起閱讀 9,489評論 0 23
  • 就是那一瞬間的回眸 我們相逢 就是那一瞬間的微笑 我們會意 邂逅在 那瞬間的停留 你像夜空中的流星 即使瞬間 依然...
    孕育隨筆閱讀 276評論 0 1
  • 昨天饱溢,一朋友說我不缺貴人喧伞!我安靜的想了想,確實绩郎,我一路上遇到了許許多多的貴人潘鲫。 給我生命的父母。為了給我們創(chuàng)造良好...
    米勒Li閱讀 182評論 1 1
  • 曾經(jīng)想要個女兒肋杖,以為這樣可以成為慈父溉仑,有個女兒可以成為這個家族中的掌上明珠,但是個兒子兽愤,似乎有些遺憾彼念,然而第一次抱...
    顧晴楓閱讀 10,172評論 12 18
  • 安裝 選項 -E:只進行預處理,不編譯-S:只編譯浅萧,不匯編-c:只編譯逐沙、匯編,不鏈接-g:編譯器在編譯的時候產(chǎn)生調(diào)...
    第八區(qū)閱讀 2,008評論 0 1