LeetCode Кисть название ноты - жадный - код Грея

Тема Описание:

Серый код двоичной системы счисления, в этой системе, только две последовательные значения разности числа битов.

Учитывая общее число бит, представляющее кодированный неотрицательный целое число п, которое является кодирующей последовательностью печати серого цвета. Серая кодирующая последовательность должна начинаться с 0.

Источник: остаться кнопка (LeetCode)
ссылка: https: //leetcode-cn.com/problems/gray-code

Проблема решения идеи:

При п = 1: 0,1

При п = 2, только результаты для все п = 1, является наиболее значимым битом и добавление обратного добавлена ​​&&&

0,1

10,11> 11,10 обратный

Конечный результат 0,1,11,10;

 

 

. 1   общественный List <Integer> GrayCode ( INT n-) {
 2          Result = List <Integer> новый новый ArrayList <> ();
 . 3          result.add (0 )
 . 4          // генерация кода Грея, и были добавлены к элементу до сбора соответствующих , так что DP - 
5.          для ( INT I = 0; я <п, я ++) {   // измеряется от начальной цифры 1, и только двузначного числа цифр для трехзначный и цифр 1 и 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