Gray Code(格雷編碼)
http://www.lintcode.com/en/problem/gray-code/
import java.util.ArrayList;
/**
* 如n=2時,格雷碼為00,01,11,10.
* 如需生成n=3的格雷碼只需先將原序列高位加0變成000,001,011,010,
* 再將原序列在高位加1並逆向新增到剛才生成的序列尾部,
* 即000,001,011,010,110,111,101,100。
* 也就是說,n+1位元格雷碼是基於n位元格雷碼產生的。
*/
public class Solution {
/**
* @param n a number
* @return Gray code
*/
public ArrayList<Integer> grayCode(int n) {
// Write your code here
ArrayList<Integer> list = new ArrayList();
if (n == 0) {
list.add(0);
return list;
}
if (n == 1) {
list.add(0);
list.add(1);
return list;
}
ArrayList<Integer> code = grayCode(n - 1);
int factor = 1 << (n - 1);
list.addAll(code);
for (int i = code.size() - 1; i >= 0; i--) {
list.add(code.get(i) + factor);
}
return list;
}
}
相關文章
- LeetCode 89. 格雷編碼LeetCode
- LeetCode-089-格雷編碼LeetCode
- Gray-code
- Leetcode Gray CodeLeetCode
- Leetcode-Gray CodeLeetCode
- Gray Code leetcode javaLeetCodeJava
- 基於結構光投影三維重建:格雷碼編碼與解碼
- Unicode編碼解碼Unicode
- C# Unicode編碼C#Unicode
- iOS - GeoCoder 地理編碼iOS
- codecs 編碼處理
- Unicode編碼介紹Unicode
- Code128編碼
- Sql Server UniCode編碼解碼SQLServerUnicode
- url編碼和解碼分析URLEncoder.encode和URLDecoder.decode
- 解碼返回Unicode編碼的文字Unicode
- 【Codecs系列】硬體編碼器編碼引數分析
- python unicode 編碼整理PythonUnicode
- Python編碼和UnicodePythonUnicode
- 阿呆學Unicode之編碼Unicode
- XCode 編譯 PAG 原始碼XCode編譯原始碼
- P5657 [CSP-S2019] 格雷碼
- python編碼問題之”encode”&”decode”Python
- asp.net(C#) 編碼解碼(HtmlEncode與HtmlEncode)ASP.NETC#HTML
- Unicode編碼解碼的全面介紹Unicode
- CommandEncoder編碼多個通道
- 字符集編碼(三):UnicodeUnicode
- php uncode 轉漢字編碼PHP
- 前端程式碼線上編輯器:codepen、codesandbox前端
- ptyon 特殊處理 url 編碼與解碼,字元編碼轉化 unicode字元Unicode
- CodePage------Encoding 類支援的編碼以及與這些編碼關聯的內碼表(CodePage)Encoding
- 生成組合物件之二進位制反射格雷碼(c++)物件反射C++
- verilog實現格雷碼和二進位制碼的相互轉換
- MediaCodec硬編碼pcm2aac
- 字符集編碼(上):Unicode 之前Unicode
- 什麼是視訊編碼(Codec)?
- json_encode() 不編碼中文JSON
- [CareerCup] 17.10 Encode XML 編碼XMLXML