LeetCodeブラシタイトルのメモ - 貪欲 - グレイコード

件名の説明:

グレイコードは、このシステムでは、ビット数の差の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      }    

 

おすすめ

転載: www.cnblogs.com/sqchao/p/11070032.html