面试题-格雷码的实现
来源:互联网 发布:win10专业版网络掉线 编辑:程序博客网 时间:2024/05/20 07:49
在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同, 则称这种编码为格雷码(Gray Code),请编写一个函数,使用递归的方法生成N位的格雷码。
给定一个整数n,请返回n位的格雷码,顺序为从0开始。
格雷码介绍
public class 格雷码 { public static String[] getGray(int n) { //总共需要的位数 String grayCode[]=new String[(int)Math.pow(2,n)]; if(n==1){ //位数为1为递归结束情况,规律: /* 1、除了最高位(左边第一位),格雷码的位元完全上下对称(看下面列表)。 比如第一个格雷码与最后一个格雷码对称(除了第一位),第二个格雷码与倒数第二个对称,以此类推。 2、最小的重复单元是 0 , 1。 000 001 011 010 110 111 101 100 */ grayCode[0]="0"; grayCode[1]="1"; return grayCode; } //递归前n-1的格雷码 String last[]=getGray(n-1); //格雷码计算方式,前一次格雷码分两部分,假设01 for(int i=0;i<last.length;i++){ grayCode[i]="0"+last[i];//前半部分的二进制码前加 0 grayCode[grayCode.length-i-1]="1"+last[i];//后半部分的二进制码前加1 } return grayCode; } public static void main(String[] args) { String[] strings=getGray(10); for (String string : strings) { System.out.println(string); } }}
1 0
- 面试题-格雷码的实现
- 一道面试题的实现
- 百度面试题的java实现
- 【面试题】strcpy的严格实现
- 百度面试题的java实现
- 面试题:strcpy、strchr、strstr的实现
- Java-----面试题之交通灯的实现
- 一道百度最新面试题的实现
- [程序员面试题]memcpy的实现
- 面试题45:字符串四则运算的实现
- [各种面试题] 堆的实现
- 面试题--HashMap底层的实现
- C++面试题:String类的实现
- 面试题:阐述Handler的实现原理
- 【面试题】实现单链表的逆序
- C++面试题--string类的实现
- 面试题atoi的模拟实现
- JAVA面试题04-HashMap的实现
- iOS 动画Animation-3: CATransform3D 特效详解
- iOS点击按钮高亮
- iOS 常用函数
- Gesture Recognizers与触摸事件分发
- 23种设计模式_java
- 面试题-格雷码的实现
- Spark读取csv数据
- RTLabel的使用
- 苹果电脑Mac OS系统重装图文详解
- 事件冒泡以及onmouseenter 和 onmouseover 的不同
- 网络请求-AFNetworking3.0使用简介
- 12C-OCP升级1z-060-002
- 使用MVC框架中要注意的问题:如何在页面和用户控件之间传递数据
- C#控制台应用程序 “输出”到控制台 Console.WriteLine