成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

[Leetcode] Gray Code 格雷碼

Code4App / 2483人閱讀

摘要:找規(guī)律復(fù)雜度時間空間思路仔細(xì)觀察格雷碼當(dāng)時當(dāng)時當(dāng)時可以發(fā)現(xiàn),的格雷碼,就是的格雷碼,再加上它們的逆序前面多一個。

Grey 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.

找規(guī)律 復(fù)雜度

時間 O(N) 空間 O(N)

思路

仔細(xì)觀察格雷碼
當(dāng)n=1時

1
0

當(dāng)n=2時

00
01
11
10

當(dāng)n=3時

000
001
011
010
110
111
101
100

可以發(fā)現(xiàn),n的格雷碼,就是n-1的格雷碼,再加上它們的逆序前面多一個1。

代碼
public class Solution {
    public List grayCode(int n) {
        List res = new ArrayList();
        // 加入初始值0
        res.add(0);
        for(int i = 0; i < n; i++){
            // 每一輪的最高位
            int highestBit = 1 << i;
            int size = res.size();
            // 逆序添加上一輪里出現(xiàn)的數(shù),不過開頭加上這一輪的最高位
            for(int j = size - 1; j >= 0; j--){
                int num = res.get(j);
                num += highestBit;
                res.add(num);
            }
        }
        return res;
    }
}
公式法 復(fù)雜度

時間 O(N) 空間 O(N)

思路

工業(yè)中的第i個格雷碼是這么生成的:(i>>1)^i
i是指下標(biāo),從0開始,對于n的格雷碼序列,一共有2^n個數(shù)

代碼
public class Solution {
    public List grayCode(int n) {
        List res = new ArrayList();
        for(int i = 0; i < 1 << n; i++) res.add((i >> 1)^i);
        return res;
    }
}

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/64531.html

相關(guān)文章

  • 數(shù)據(jù)結(jié)構(gòu)與算法-LeetCode 格雷編碼(No.89)

    摘要:例如,也是一個有效的格雷編碼序列。示例輸入輸出解釋我們定義格雷編碼序列必須以開頭。給定編碼總位數(shù)為的格雷編碼序列,其長度為。因此,當(dāng)時,其格雷編碼序列為。 LeetCode 89. 格雷編碼 格雷編碼是一個二進(jìn)制數(shù)字系統(tǒng),在該系統(tǒng)中,兩個連續(xù)的數(shù)值僅有一個位數(shù)的差異。給定一個代表編碼總位數(shù)的非負(fù)整數(shù) n,打印其格雷編碼序列。格雷編碼序列必須以 0 開頭。第一個數(shù)與最后一位數(shù) 也只差以...

    Youngs 評論0 收藏0
  • LeetCode 89: GrayCode (Java)

    摘要:位的格雷碼是在位的格雷碼前面加或。由上圖可以發(fā)現(xiàn),位的格雷碼后一位是鏡像對稱位的格雷碼后位是鏡像對稱位的格雷碼后位是鏡像對稱。規(guī)律就是為格雷碼是在位格雷碼的基礎(chǔ)上,先將位鏡像對稱然后前一半首位添,后一般首位添而得到。 google電面第一輪碰到的題. GrayCode:給定位數(shù)n,按規(guī)律生成一組二進(jìn)制代碼,直接上例子。 showImg(https://segmentfault.com/...

    xiguadada 評論0 收藏0
  • 微信小程序中圖片上傳阿里云Oss

    摘要:微信小程序圖片上傳阿里云服務(wù)器也折騰了蠻久才解決的,所以特意去記錄一下。上傳失敗第四步源碼在這里如果覺得這面文章對你有幫助的話,可給我點(diǎn)個這里,謝謝最后,希望這篇文章對你有所幫助,真真確確是可以在微信小程序中上傳圖片到阿里云的。 本人今年6月份畢業(yè),最近剛在上海一家小公司實習(xí),做微信小程序開發(fā)。最近工作遇到一個小問題。 微信小程序圖片上傳阿里云服務(wù)器Oss也折騰了蠻久才解決的,所以特意...

    Yang_River 評論0 收藏0
  • 微信小程序中圖片上傳阿里云Oss

    摘要:微信小程序圖片上傳阿里云服務(wù)器也折騰了蠻久才解決的,所以特意去記錄一下。上傳失敗第四步源碼在這里如果覺得這面文章對你有幫助的話,可給我點(diǎn)個這里,謝謝最后,希望這篇文章對你有所幫助,真真確確是可以在微信小程序中上傳圖片到阿里云的。 本人今年6月份畢業(yè),最近剛在上海一家小公司實習(xí),做微信小程序開發(fā)。最近工作遇到一個小問題。 微信小程序圖片上傳阿里云服務(wù)器Oss也折騰了蠻久才解決的,所以特意...

    netmou 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<