中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

溫州建設(shè)工程信息網(wǎng)站seo優(yōu)化按天扣費(fèi)

溫州建設(shè)工程信息網(wǎng)站,seo優(yōu)化按天扣費(fèi),軟件的開發(fā)流程,成人教育格雷編碼格雷編碼的定義格雷編碼的碼表LeetCode 89. 格雷編碼實(shí)例思路與代碼思路一:找規(guī)律代碼一代碼二思路二:與自然數(shù)之間的關(guān)系(你必須知道,這個規(guī)律要去百度才知道)代碼一LeetCode 1238. 循環(huán)碼排列實(shí)例思路與代碼…

格雷編碼

    • 格雷編碼的定義
    • 格雷編碼的碼表
    • LeetCode 89. 格雷編碼
      • 實(shí)例
      • 思路與代碼
        • 思路一:找規(guī)律
          • 代碼一
          • 代碼二
        • 思路二:與自然數(shù)之間的關(guān)系(你必須知道,這個規(guī)律要去百度才知道)
          • 代碼一
    • LeetCode 1238. 循環(huán)碼排列
      • 實(shí)例
      • 思路與代碼
        • 思路一:找規(guī)律
        • 代碼一
        • 思路二:與自然數(shù)之間的關(guān)系
        • 代碼一:

格雷編碼的定義

格雷編碼我們在大學(xué)時期已經(jīng)了解過了,在一組數(shù)的編碼中,若任意兩個相鄰的代碼只有一位二進(jìn)制數(shù)不同,則稱這種編碼為格雷碼(Gray Code),另外由于最大數(shù)與最小數(shù)之間也僅一位數(shù)不同,即“首尾相連”,因此又稱循環(huán)碼或反射碼。 [2] 在數(shù)字系統(tǒng)中,常要求代碼按一定順序變化。例如,按自然數(shù)遞增計數(shù),若采用8421碼,則數(shù)0111變到1000時四位均要變化,而在實(shí)際電路中,4位的變化不可能絕對同時發(fā)生,則計數(shù)中可能出現(xiàn)短暫的其它代碼(1100、1111等)。在特定情況下可能導(dǎo)致電路狀態(tài)錯誤或輸入錯誤。使用格雷碼可以避免這種錯誤。格雷碼有多種編碼形式。
格雷碼(Gray code)曾用過Grey Code、葛萊碼、葛蘭碼、格萊碼、戈萊碼、循環(huán)碼、二進(jìn)制反射碼、最小差錯碼等名字,它們有的是錯誤的,有的易與其它名稱混淆,建議不再使用它們。

格雷編碼的碼表

自然數(shù)自然數(shù)的二進(jìn)制一位格雷碼二位格雷碼三位格雷碼四位格雷碼
000000000000000
100011010010001
20010110110011
30011100100010
401001100110
501011110111
601101010101
701111000100
810001100
910011101
1010101111
1110111110
1211001010
1311011011
1411101001
1511111000

LeetCode 89. 格雷編碼

LeetCode 89. 格雷編碼
n 位格雷碼序列 是一個由 2n 個整數(shù)組成的序列,其中:
每個整數(shù)都在范圍 [0, 2n - 1] 內(nèi)(含 0 和 2n - 1)
第一個整數(shù)是 0
一個整數(shù)在序列中出現(xiàn) 不超過一次
每對 相鄰 整數(shù)的二進(jìn)制表示 恰好一位不同 ,且
第一個 和 最后一個 整數(shù)的二進(jìn)制表示 恰好一位不同
給你一個整數(shù) n ,返回任一有效的 n 位格雷碼序列 。

實(shí)例

輸入:n = 2
輸出:[0,1,3,2]
解釋:
[0,1,3,2] 的二進(jìn)制表示是 [00,01,11,10] 。
- 0001 有一位不同
- 0111 有一位不同
- 1110 有一位不同
- 1000 有一位不同
[0,2,3,1] 也是一個有效的格雷碼序列,其二進(jìn)制表示是 [00,10,11,01] 。
- 0010 有一位不同
- 1011 有一位不同
- 1101 有一位不同
- 0100 有一位不同

思路與代碼

思路一:找規(guī)律

觀察格雷碼的規(guī)律,具有一定的對稱性,高位是 1 或者 0,并由此就行對稱

代碼一
//耗時 6ms
class Solution {public List<Integer> grayCode(int n) {int count = 1;List<Integer> res = new ArrayList<>();res.add(0);res.add(1);while (n-- > 1) {count <<= 1;for (int i = count - 1; i >= 0; i--) {res.add(res.get(i) + count);}}return res;}
}

因為res.get(i)是循環(huán)方式去取值,當(dāng)n的位數(shù)確定后格雷數(shù)就已經(jīng)知道多少了,故可以這樣寫

代碼二
class Solution {public List<Integer> grayCode(int n) {Integer[] res = new Integer[1 << n];res[0] = 0;res[1] = 1;int count = 1;while (n-- > 1) {count <<= 1;for (int i = 0; i < count; i++) {res[i + count] = count + res[count - i - 1];}}return Arrays.asList(res);}
}

思路二:與自然數(shù)之間的關(guān)系(你必須知道,這個規(guī)律要去百度才知道)

格雷碼→二進(jìn)制碼(解碼):
從左邊第二位起,將每位與左邊一位解碼后的值異或,作為該位解碼后的值(最左邊一位依然不變)。依次異或,直到最低位。依次異或轉(zhuǎn)換后的值(二進(jìn)制數(shù))就是格雷碼轉(zhuǎn)換后二進(jìn)制碼的值。

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

LeetCode 1238. 循環(huán)碼排列

LeetCode 1238. 循環(huán)碼排列
給你兩個整數(shù) n 和 start。你的任務(wù)是返回任意 (0,1,2,…,2^n-1) 的排列 p,并且滿足:
p[0] = start
p[i] 和 p[i+1] 的二進(jìn)制表示形式只有一位不同
p[0] 和 p[2^n -1] 的二進(jìn)制表示形式也只有一位不同
實(shí)例:

實(shí)例

輸入:n = 2, start = 3
輸出:[3,2,0,1]
解釋:這個排列的二進(jìn)制表示是 (11,10,00,01)所有的相鄰元素都有一位是不同的,另一個有效的排列是 [3,1,0,2]

思路與代碼

題目與上面的是一樣的,所有解決方法也是兩種

思路一:找規(guī)律

觀察格雷碼的規(guī)律,具有一定的對稱性,高位是 1 或者 0,并由此就行對稱

代碼一

class Solution {public List<Integer> circularPermutation(int n, int start) {List<Integer> ans = new ArrayList<>();Integer[] res = new Integer[1 << n];res[0] = 0;res[1] = 1;int count = 1;int index = start; // 找到位置, 存在start 為 0,1的問題,故直接賦值過去while (n-- > 1) {count <<= 1;for (int i = 0; i < count; i++) {res[i + count] = count + res[count - i - 1];if (res[i + count] == start) {index = i + count;}}}for (int i = 0; i < res.length; i++) {ans.add(res[(index + i) % res.length]);}return ans;}
}

思路二:與自然數(shù)之間的關(guān)系

要通過觀察,格雷數(shù)的 ^ 關(guān)系,格雷是從0開始的,0^任意數(shù)都是本身,然后格雷數(shù)每個與前一個變化相差為一,故一直第一個數(shù) ^ 結(jié)果就是你想要的

代碼一:

class Solution {public List<Integer> circularPermutation(int n, int start) {List<Integer> res = new ArrayList<>();int sum = 1<<n;for(int i = 0;i < sum;i++){res.add((i >> 1) ^ i ^ start);}return res;}
}
http://www.risenshineclean.com/news/60080.html

相關(guān)文章:

  • 用vs做網(wǎng)站表格向上居中zac博客seo
  • 南昌網(wǎng)站建設(shè)那家好一個新產(chǎn)品怎么推廣
  • 貴陽app定制開發(fā)鄭州seo優(yōu)化外包顧問阿亮
  • 江門關(guān)鍵詞排名工具鄭州seo外包顧問熱狗
  • you物公館網(wǎng)站建設(shè)灰色詞優(yōu)化培訓(xùn)
  • 廳網(wǎng)站集約化建設(shè)長沙百度搜索排名
  • 太原做網(wǎng)站需要多少錢阿里巴巴運(yùn)營
  • 百度網(wǎng)站地圖提交網(wǎng)頁優(yōu)化最為重要的內(nèi)容是
  • wordpress 破解seo咨詢師
  • 做電腦網(wǎng)站手機(jī)能顯示不出來怎么辦怎樣做推廣營銷
  • 廣東省路橋建設(shè)有限公司網(wǎng)站泉州seo按天收費(fèi)
  • 免費(fèi)制作的企業(yè)網(wǎng)站云南seo簡單整站優(yōu)化
  • 福田區(qū)做網(wǎng)站公司青島做網(wǎng)站的公司哪家好
  • 個人網(wǎng)站建設(shè)方案模板線上銷售渠道有哪幾種
  • 微信對接網(wǎng)站寶雞百度seo
  • 樂山網(wǎng)站seo營銷網(wǎng)站建設(shè)都是專業(yè)技術(shù)人員
  • 微信公眾號網(wǎng)站導(dǎo)航怎么做喬拓云智能建站官網(wǎng)
  • 單頁網(wǎng)站做淘寶客免費(fèi)的行情網(wǎng)站
  • 電子商務(wù)網(wǎng)站建設(shè)規(guī)劃書實(shí)例灰色詞快速上排名
  • 樹狀結(jié)構(gòu)的網(wǎng)站開網(wǎng)店哪個平臺靠譜
  • 火烈鳥門戶網(wǎng)站開發(fā)企業(yè)培訓(xùn)體系搭建
  • 遼寧seo站內(nèi)優(yōu)化合肥seo排名扣費(fèi)
  • 網(wǎng)站優(yōu)化百度百度官網(wǎng)下載安裝免費(fèi)
  • 杭州小型網(wǎng)站建設(shè)服務(wù)關(guān)鍵詞排名代做
  • 幼兒園大班主題網(wǎng)絡(luò)圖臺州百度快照優(yōu)化公司
  • 增城做網(wǎng)站站長之家seo查找
  • dede手機(jī)網(wǎng)站模板下載優(yōu)化是什么意思?
  • 做企業(yè)網(wǎng)站價格注冊網(wǎng)址
  • 8080端口做網(wǎng)站網(wǎng)絡(luò)營銷的常用方法
  • 政府網(wǎng)站集約化建設(shè)項目廊坊seo排名