首页 > 其他分享 >89. 格雷编码

89. 格雷编码

时间:2023-06-08 14:07:01浏览次数:41  
标签:格雷 编码 拼接 89 gray 回溯 序列 100




89. 格雷编码

  • 题目
  • 数学公式
  • 动态规划
  • 回溯



 


题目

传送门:https://leetcode.cn/problems/gray-code/

89. 格雷编码_数学公式


 


数学公式

int gray(int n) {      // 计算第n位格雷码公式
	return n ^ (n >> 1);
}

然后你写一个for循环,计算从1到n的所有格雷码,添加到答案数组。

 


动态规划

算例给了 n=2 的解,有了 n = 2 的解,推导怎么得到 n = 3 的解。

n = 2,值范围是 0-3

n = 3,值范围是 0-7

差了一个 2²(4)

4 的二进制是 100

n = 2 算例答案:00 01 11 10(0-1-3-2)

换成n=3范围,都加上 100

变成 100 101 111 110(4-5-7-6)

000 001 011 010
(0-1-3-2)

100 101 111 110
(4-5-7-6)

每个序列都保证了相邻数的二进制一位不同

我们现在把俩个序列拼接,就是 n = 3 的格雷码

序列是符合要求的,唯一不同就是拼接地方不同,序列1最后010和序列2开头100有俩位不同

只变化1位就是倒序拼接,因为2和6不同就是加了4,二进制上也就是多了一个1(第1位加1)

n=4,5,6 原问题 = n-1的子问题 + 2^(n-1) + 倒序拼接

 


回溯

回溯思路,你看这链接的图。


标签:格雷,编码,拼接,89,gray,回溯,序列,100
From: https://blog.51cto.com/u_13937572/6439421

相关文章

  • 哈夫曼编码
    哈夫曼编码为什么使用哈夫曼编码?让出现次数较多的字符采用近可能短的编码.出现重码要设计任一字符的编码都不是另一个字符的编码的前缀.这样的编码叫做前缀编码.采用哈夫曼编码例题为什么哈夫曼编码是前缀编码?为什么哈夫曼编码能保证字符编码总长最短?哈夫曼编......
  • P8933 [JRKSJ R7] 技巧性的块速递推 题解
    题目传送门题意:简单来说就是一个涂色游戏。有一个n×m的棋盘需要涂色。每格只能涂黑色或白色两种颜色。横、竖、斜连续3格颜色不能相同。横、竖、斜连续4格颜色不能有3个相同颜色,即只能是2个黑和2个白。最后让你统计出所有符合条件的涂色方式的方......
  • 转Unicode编码范围
    Unicode编码范围(Unicodeblocks)0x0000-0x001F:控制字符(Controlcharacter)0x0020-0x007F:基本拉丁字母(BasicLatin)0x0080-0x00FF:拉丁文补充1(Latin-1Supplement)0x0100-0x017F:拉丁文扩展-A(LatinExtended-A)0x0180-0x024F:拉丁文扩展-B(LatinExtended-B)0x0250-0x02AF:国际......
  • Linux 字符编码
    1、查看字符编码和语言使用locale命令,语言是en_US(英语_美式),编码是UTF-8 2、修改字符编码和语言对应配置文件centos7修改文件/etc/locale.confcentos6修改文件/etc/sysconfig/i18n2.1先看一下修改前的 2.2然后,如改成中文编码GBK编码:LANG="en_US.UTF-8"改......
  • Jmeter-将响应数据从unicode编码转为中文
    现象: 解决:1. 修改配置 sampleresult.default.encoding=UTF-8 2. 添加后置处理器: BeanShell后置处理程序  可以在测试计划或者线程组下面添加,这样就不用每个请求都添加了. 代码:Strings=newString(prev.getResponseData(),"UTF-8");......
  • 死锁编码与定位分析
    死锁编码与定位分析文章目录死锁编码与定位分析1.理论2.代码验证3.查找死锁故障1.理论死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相符待的现象,岩无外力干涉那它们都将无法推进下去。如果系统资源充足,过程的资源请求都能够得到满足,死锁出现的可能性就......
  • 引出问题:不同编码读取会出现乱码
         ......
  • CSV文件ASCI编码格式转UTF-8
    1.将CSV文件中的文本内容复制到wps表格中→保存文件为csv文件格式。2.用记事本打开csv文件→另存为→“编码”选项下拉选择“UTF-8”→保持文件类型不变保存。另外,高版本的Microsoftofficeexcel似乎可以直接通过另存的方式实现UTF-8转码,如果有这个软件也可以试试。......
  • 编码器 | 基于 Transformers 的编码器-解码器模型
    基于transformer的编码器-解码器模型是表征学习和模型架构这两个领域多年研究成果的结晶。本文简要介绍了神经编码器-解码器模型的历史,更多背景知识,建议读者阅读由SebastionRuder撰写的这篇精彩博文。此外,建议读者对自注意力(self-attention)架构有一个基本了解,可以......
  • 记录--JavaScript 中有趣的 9 个常用编码套路
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助1️⃣set对象:数组快速去重常规情况下,我们想要筛选唯一值,一般会想到遍历数组然后逐个对比,或者使用成熟的库比如lodash之类的。不过,ES6带来了一个新玩意儿!它引入了一个全新的对象类型:Set!而且,如果结合上...展开运算符......