- 浏览: 186447 次
- 性别:
- 来自: 济南
-
文章分类
最新评论
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.
解决这道题目关键在于了解格雷码的编码规则,什么是格雷码,可以参考之前的一篇有关格雷码的介绍,这里不再赘述。实现代码如下:
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.
解决这道题目关键在于了解格雷码的编码规则,什么是格雷码,可以参考之前的一篇有关格雷码的介绍,这里不再赘述。实现代码如下:
public class Solution { public List<Integer> grayCode(int n) { List<Integer> list = new ArrayList<Integer>(); list.add(0); for(int i = 1; i <=n; i++) { for(int j = list.size() - 1; j >=0; j--) { list.add(list.get(j) + (int)Math.pow(2, i - 1)); } } return list; } }
发表评论
-
498. Diagonal Traverse
2019-11-15 13:52 273Given a matrix of M x N eleme ... -
496 Next Greater Element I
2019-11-14 13:50 279You are given two arrays (witho ... -
Word Break II
2016-03-09 03:15 395Given a string s and a dictiona ... -
Insert Interval
2016-03-08 02:11 385Given a set of non-overlapping ... -
Merge Intervals
2016-03-07 05:25 509Given a collection of intervals ... -
Merge k Sorted Lists
2016-03-07 04:03 576Merge k sorted linked lists and ... -
Multiply Strings
2016-03-06 07:27 489Given two numbers represented a ... -
N-Queens II
2016-03-06 03:06 678Follow up for N-Queens problem. ... -
N-Queens
2016-03-06 02:47 483The n-queens puzzle is the prob ... -
First Missing Positive
2016-03-05 03:09 439Given an unsorted integer array ... -
Spiral Matrix
2016-03-04 03:39 591Given a matrix of m x n element ... -
Trapping Rain Water
2016-03-04 02:54 605Given n non-negative integers r ... -
Repeated DNA Sequences
2016-03-03 03:10 436All DNA is composed of a series ... -
Increasing Triplet Subsequence
2016-03-02 02:48 914Given an unsorted array return ... -
Maximum Product of Word Lengths
2016-03-02 01:56 941Given a string array words, fin ... -
LRU Cache
2016-02-29 10:37 612Design and implement a data str ... -
Super Ugly Number
2016-02-29 07:07 707Write a program to find the nth ... -
Longest Increasing Path in a Matrix
2016-02-29 05:56 875Given an integer matrix, find t ... -
Coin Change
2016-02-29 04:39 801You are given coins of differen ... -
Minimum Height Trees
2016-02-29 04:11 744For a undirected graph with tre ...
相关推荐
public class GrayCode { public static List<Integer> generateGrayCode(int n) { List<Integer> result = new ArrayList(); if (n == 0) { result.add(0); return result; } List<Integer> subResult = ...
标题"binary_to_gray.rar_binary_to_gray_fpga Gra_gray_gray code_格雷码"暗示了这个压缩包文件包含了一个关于在FPGA上实现二进制到格雷码转换的设计。"binary_input"是二进制数据的输入端口,它接收4位并行的二...
对于这个"counter_gray.vhd"文件,我们可以期待它包含了用VHDL编写的格雷码计数器的代码。 格雷码计数器的设计通常涉及以下几个关键部分: 1. **计数状态**:计数器有多个状态,每个状态对应一个格雷码。例如,...
格雷码(Gray Code),又称为灰度码或无歧义二进制码,是一种特殊的二进制编码方式,它的特点在于相邻两个数值之间只有一位不同。这种编码在电子、通信、计算机等领域有着广泛的应用,比如在数据传输、编码器、解码...
### C经典算法之格雷码(Gray Code) #### 格雷码简介 格雷码(Gray Code)是一种特殊的编码方式,其特点在于任意两个相邻的代码仅有一位不同。这种编码方式最早由贝尔实验室的Frank Gray在1940年代提出,并在1953...
在格雷码生成中,右移用于将当前格雷码与上一个格雷码进行比较,以确定下一个格雷码的生成方式。 2. **异或操作**: 异或操作在二进制中表示,如果两个输入位相同,结果为0;如果不同,结果为1。在生成格雷码时,...
在这个特定的场景中,我们关注的是如何将格雷码(Gray Code)转换为10进制数,这是一个在数字系统和信号处理中常见的任务,尤其是在具有位置编码器或旋转编码器的系统中。格雷码是一种非重叠的二进制编码,其相邻的...
在IT领域,特别是计算机科学与图像处理中,格雷码(Gray Code)是一种重要的二进制数字系统。它最大的特点是相邻两个数值之间仅有一位不同,这使得在编码转换时能够减少错误的发生。在本主题中,我们将深入探讨如何...
在IT领域,我们经常需要处理各种编码形式,其中包括二进制和格雷码。本文将深入探讨如何将十进制数转换为普通二进制和格雷码,并使用MATLAB来实现这一过程。同时,我们将讨论如何从日志文件中提取特定数据列,并将...
二进制编码与格雷码编码是数字系统中常见的两种编码方式。二进制编码是我们最熟悉的,由0和1组成,而格雷码(Gray Code),又称格雷码或葛莱码,是一种非顺序的编码系统,相邻两个数字之间仅有一位不同。这种特性在...
本文介绍了一种利用分治法求解格雷码(Gray Code)的方法,并提供了相应的C语言代码实现。格雷码是一种二进制数字系统,在该系统中,两个连续的数值其二进制表示仅有一位不同。 #### 描述解析 这段描述简要介绍了...
格雷码,又称格雷编码(Gray Code),是一种非重叠二进制编码方式,它的主要特点是相邻两个数值之间仅有一位二进制数不同。在数据传输、编码电路设计、图像处理等领域有广泛应用,比如在多路开关系统、编码器、解码...
save_image(pixels, width, height, "grayCode.png"); // 保存为PNG图片 return 0; } ``` 上述代码只是一个简化的示例,实际项目中需要根据选定的图像库完成`save_image`函数的具体实现。OpenCV库提供了`imwrite...
在MATLAB中,可以使用`graycode`函数生成格雷码序列。 格雷差分序列(Gray Difference Sequence)则是基于格雷码的概念,它关注的是连续格雷码之间的变化。这个序列通常用于测量系统,尤其是那些需要精确跟踪连续...
在PLC编程中,有时需要处理不同的编码方式,其中格雷码(Gray Code)是一种无权码,其特点是相邻两个数字之间只有一位不同,这种特性在数据传输和错误检测中具有优势。本主题主要关注32位格雷码的译码,即将其转换为...
格雷码(Gray Code),又称为格雷编码或无权码,是一种特殊的二进制数字系统,其特点是相邻两个数值之间仅有一位不同。在数据传输、计算机科学、电子工程等领域有广泛应用,特别是在避免因快速变化导致的错误传输上...
`Graycode.m`这个文件很可能是一个MATLAB脚本或函数,用于实现格雷码的相关操作,如生成指定位数的格雷码序列,或者进行格雷码与普通二进制码之间的转换。在MATLAB中,你可以编写函数来生成格雷码,例如: ```...
格雷码(Gray Code),又称为格雷码或葛莱码,是一种非重叠的二进制编码方式,它的特点是相邻两个数值之间只有一个位元差异。这种编码在电子工程、计算机科学以及通信等领域有着广泛的应用,特别是在数据传输、编码...
在数字电路设计中,格雷码(Gray Code)是一种非重叠二进制编码方式,它的特点是相邻两个数值之间仅有一位二进制位不同。这种编码在数据转换、编码器、解码器以及计数器等领域有广泛应用。 Altera公司是知名的 FPGA...
格雷码,又称格雷编码,是一种二进制数字系统,它的特点是相邻两个数值之间仅有一位不同。在“GrayCode(24,12)”中,“24”表示总共有24位,而“12”则指的是信息位的数量。这意味着在这样的格雷码系统中,有12位是...