LeetCode 브러쉬 제목 노트 - 욕심 - 그레이 코드

주제 설명 :

그레이 코드는,이 시스템을 구성하는 비트 수의 차이가 두 개의 연속적인 값을 이진수 시스템이다.

인쇄 그레이 코딩 서열 인 인코딩 된 음이 아닌 정수 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 자릿수의 두 자리 숫자로 측정 
. (6)              에 대해 ( INT J = result.size () - 1; J> = 0; J, ) {
 7.                     // 1 비트 연산, 지수 2에 대응하는 
8.                  result.add ((1 << I) + 결과. GET (J));      // 1 << (5) (제 1 좌측) 즉 2 ^ 5 :.. 
9.              }
10          }
 11  
12          복귀 결과;
13      }    

 

추천

출처www.cnblogs.com/sqchao/p/11070032.html