zoukankan      html  css  js  c++  java
  • leetCode 89.Gray Code (格雷码) 解题思路和方法

    The gray code is a binary numeral system where two successive values differ in only one bit.

    Given a non-negative integer n representing the total number of bits in the code, print the sequence of gray code. A gray code sequence must begin with 0.

    For example, given n = 2, return [0,1,3,2]. Its gray code sequence is:

    00 - 0
    01 - 1
    11 - 3
    10 - 2
    

    Note:
    For a given n, a gray code sequence is not uniquely defined.

    For example, [0,2,3,1] is also a valid gray code sequence according to the above definition.

    For now, the judge is able to judge based on one instance of gray code sequence. Sorry about that.


    此题不算难,主要是要掌握什么是格雷码。然后才干做这道题,详细格雷码概念參考百度就可以,详细解法是遍历,逐一试探就可以。

    代码例如以下:

    public class Solution {
        public List<Integer> grayCode(int n) {
            
            List<Integer> list = new ArrayList<Integer>();
            //去除反复
            Set<String> set = new HashSet<String>();
    
            //表示二进制数的数组
            char[] c = new char[n];
            Arrays.fill(c, '0');//所有为0
            set.add(new String(c));
            list.add(0);
            int i = 1;//从1開始
            //格雷码长度
            int len = (int) Math.pow(2, n);
            while(i++ < len){
            	//逐个尝试
            	for(int j = c.length - 1; j >= 0; j--){
            		c[j] = c[j] == '1' ? '0':'1';//每一位均异或
            		String b = new String(c);
            		//成功则加入结果集。并结束循环
            		if(set.add(b)){
            			//二进制转换为十进制
            			list.add(Integer.valueOf(b, 2));
            			break;
            		}else{
            			//假设不是则数值变换回来
            			c[j] = c[j] == '1' ? '0':'1';
            		}
            	}
            }
            return list;
        }
    }



  • 相关阅读:
    Network (poj1144)
    C. Hongcow Builds A Nation
    ZYB loves Xor I(hud5269)
    D. Chloe and pleasant prizes
    Game(hdu5218)
    约瑟夫环的递推方法
    Misaki's Kiss again(hdu5175)
    Exploration(hdu5222)
    B. Arpa's weak amphitheater and Mehrdad's valuable Hoses
    C. Arpa's loud Owf and Mehrdad's evil plan
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/6910531.html
Copyright © 2011-2022 走看看