摘要:找規(guī)律復(fù)雜度時(shí)間空間思路仔細(xì)觀察格雷碼當(dāng)時(shí)當(dāng)時(shí)當(dāng)時(shí)可以發(fā)現(xiàn),的格雷碼,就是的格雷碼,再加上它們的逆序前面多一個(gè)。
Grey Code
找規(guī)律 復(fù)雜度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 - 2Note: 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.
時(shí)間 O(N) 空間 O(N)
思路仔細(xì)觀察格雷碼
當(dāng)n=1時(shí)
1 0
當(dāng)n=2時(shí)
00 01 11 10
當(dāng)n=3時(shí)
000 001 011 010 110 111 101 100
可以發(fā)現(xiàn),n的格雷碼,就是n-1的格雷碼,再加上它們的逆序前面多一個(gè)1。
代碼public class Solution { public List公式法 復(fù)雜度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ù),不過(guò)開(kāi)頭加上這一輪的最高位 for(int j = size - 1; j >= 0; j--){ int num = res.get(j); num += highestBit; res.add(num); } } return res; } }
時(shí)間 O(N) 空間 O(N)
思路工業(yè)中的第i個(gè)格雷碼是這么生成的:(i>>1)^i
i是指下標(biāo),從0開(kāi)始,對(duì)于n的格雷碼序列,一共有2^n個(gè)數(shù)
public class Solution { public ListgrayCode(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)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/64531.html
摘要:例如,也是一個(gè)有效的格雷編碼序列。示例輸入輸出解釋我們定義格雷編碼序列必須以開(kāi)頭。給定編碼總位數(shù)為的格雷編碼序列,其長(zhǎng)度為。因此,當(dāng)時(shí),其格雷編碼序列為。 LeetCode 89. 格雷編碼 格雷編碼是一個(gè)二進(jìn)制數(shù)字系統(tǒng),在該系統(tǒng)中,兩個(gè)連續(xù)的數(shù)值僅有一個(gè)位數(shù)的差異。給定一個(gè)代表編碼總位數(shù)的非負(fù)整數(shù) n,打印其格雷編碼序列。格雷編碼序列必須以 0 開(kāi)頭。第一個(gè)數(shù)與最后一位數(shù) 也只差以...
摘要:位的格雷碼是在位的格雷碼前面加或。由上圖可以發(fā)現(xiàn),位的格雷碼后一位是鏡像對(duì)稱位的格雷碼后位是鏡像對(duì)稱位的格雷碼后位是鏡像對(duì)稱。規(guī)律就是為格雷碼是在位格雷碼的基礎(chǔ)上,先將位鏡像對(duì)稱然后前一半首位添,后一般首位添而得到。 google電面第一輪碰到的題. GrayCode:給定位數(shù)n,按規(guī)律生成一組二進(jìn)制代碼,直接上例子。 showImg(https://segmentfault.com/...
摘要:微信小程序圖片上傳阿里云服務(wù)器也折騰了蠻久才解決的,所以特意去記錄一下。上傳失敗第四步源碼在這里如果覺(jué)得這面文章對(duì)你有幫助的話,可給我點(diǎn)個(gè)這里,謝謝最后,希望這篇文章對(duì)你有所幫助,真真確確是可以在微信小程序中上傳圖片到阿里云的。 本人今年6月份畢業(yè),最近剛在上海一家小公司實(shí)習(xí),做微信小程序開(kāi)發(fā)。最近工作遇到一個(gè)小問(wèn)題。 微信小程序圖片上傳阿里云服務(wù)器Oss也折騰了蠻久才解決的,所以特意...
摘要:微信小程序圖片上傳阿里云服務(wù)器也折騰了蠻久才解決的,所以特意去記錄一下。上傳失敗第四步源碼在這里如果覺(jué)得這面文章對(duì)你有幫助的話,可給我點(diǎn)個(gè)這里,謝謝最后,希望這篇文章對(duì)你有所幫助,真真確確是可以在微信小程序中上傳圖片到阿里云的。 本人今年6月份畢業(yè),最近剛在上海一家小公司實(shí)習(xí),做微信小程序開(kāi)發(fā)。最近工作遇到一個(gè)小問(wèn)題。 微信小程序圖片上傳阿里云服務(wù)器Oss也折騰了蠻久才解決的,所以特意...
閱讀 857·2021-10-11 10:59
閱讀 2792·2019-08-30 15:43
閱讀 2129·2019-08-30 11:08
閱讀 1647·2019-08-29 15:20
閱讀 1002·2019-08-29 13:53
閱讀 486·2019-08-26 13:24
閱讀 1633·2019-08-26 13:24
閱讀 2820·2019-08-26 12:08