首页 > 试题广场 >

生成格雷码

[编程题]生成格雷码
  • 热度指数:22984 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同, 则称这种编码为格雷码(Gray Code),请编写一个函数,使用递归的方法生成N位的格雷码。

给定一个整数n,请返回n位的格雷码,顺序为从0开始。

测试样例:
1
返回:["0","1"]
头像 牛客fd515346550号
发表于 2022-05-14 17:20:12
public class GrayCode { public String[] getGray(int n) { // write code here if (n == 1) {//递归终止条件 String[] gray = new 展开全文
头像 苏觅云
发表于 2022-05-19 15:22:36
import java.util.*; public class GrayCode { public String[] getGray(int n) { // write code here String[] ans = new String[(int) M 展开全文
头像 牛客big号
发表于 2022-05-05 16:53:25
-- coding:utf-8 -- class GrayCode: def getGray(self, n): # write code here if n==1: tmp=['0','1'] else: tmp=['0'+i for i in self.getGray(n-1)]+['1'+i 展开全文
头像 苏觅云
发表于 2022-05-19 15:16:45
import java.util.*; public class GrayCode { public String[] getGray(int n) { // write code here String[] ans = new String[(int) M 展开全文
头像 贪吃的迪恩顶呱呱
发表于 2024-04-29 22:00:41
参考大佬的java做法,由题意知,每递归一层,整体vector长度乘以2倍,由于相邻的编码只能有一个数不同,因此需要事先计算出添加1的位置 #include <vector> class GrayCode { public: vector<string> getG 展开全文
头像 在喝茶的大白菜很卖萌
发表于 2022-06-16 16:15:27
只需要列举出四位的格雷码就能发现规律; import java.util.*; public class GrayCode {     public String[] getGray(int&nb 展开全文
头像 17c89
发表于 2024-03-23 13:29:30
import java.util.*; /** * QQ1 生成格雷码 * @author d3y1 */ public class GrayCode { /** * 模拟法 * * 1位格雷码: 0 1 * 2位格雷码: (0)0 (0)1 展开全文
头像 c风x
发表于 2022-07-09 17:26:17
代码实现: import java.util.*; public class GrayCode {     public String[] getGray(int n) { 展开全文
头像 牛客499819205号
发表于 2021-10-21 15:15:40
递归算法: i == 0 直接添加 0 1 i > 0 res中元素 依次在前面添加0 额外push_back新元素 倒叙同时前面添加1 class GrayCode { public: vector<string> getGray(int n) { // 展开全文
头像 健康快乐最重要
发表于 2020-03-08 13:04:47
格雷码:1位:0 12位:(0)0 (0)1 (1)1 (1)03位:(0)00 (0)01 (0)11 (0)10 + (1)10 (1)11 (1)01 (1)00 后一位的直接在前一位的格雷码前+0 或者+1(+1要把数组反向),就可以生成格雷码。 用动态规划做的,内存占用有点儿大。 clas 展开全文

问题信息

难度:
144条回答 34779浏览

热门推荐

通过挑战的用户

查看代码