件名の説明:
グレイコードは、このシステムでは、ビット数の差の2つのみの連続する値進数システムです。
印刷グレーコード配列である符号化非負整数nを表すビットの総数を考えます。グレイコード配列は0で始まる必要があります。
出典:滞在ボタン(LeetCode)
リンクします。https://leetcode-cn.com/problems/gray-code
問題解決のアイデア:
n = 1の場合:0,1
n = 2の場合、全てのn = 1のための唯一の結果は、最上位ビットと逆の追加添加する&&&
0,1
10,11> 11,10リバース
最終結果0,1,11,10。
1 公共一覧<整数> Gray Codeと(INT N-){ 2 結果=一覧<整数> 新しい新規のArrayList <> (); 3 result.add(0 ); 4 // グレイコードの生成、および前の関連の集合を要素に追加されました、DPように 5。 ためには、(int型 I = 0; Iは、N <; Iは++){ // 開始桁1から測定され、3桁と桁1&2が関連しているの桁のみ2桁の数字 6 のための(INT J = result.size() - 1; J> = 0; J、){ 7。 // 約1ビット操作、2べき乗に対応する 8。 result.add((1 << I)+結果。 GET(J)); // 1 << 5(5 1左側)すなわち:2 ^ 5。 9。 } 10 } 11 12 リターン結果。 13 }