当前位置: 首页 > news >正文

LeetCode 第89题:格雷编码

题目描述:

n位格雷码序列是一个由2的n次方的整数组成的序列,其中:

  • 每个整数都在范围【0,2^n -1】内(包含0和2^n -1)
  • 第一个整数是0
  • 一个整数在序列中出现不超过一次
  • 每对相邻整数的二进制表示恰好一位不同,且
  • 第一个和最后一个整数的二进制表示恰好一位不同
  • 给你一个整数n,返回任一有效的n位格雷码序列。

示例1:

输入:n = 2
输出:[0,1,3,2]
解释:
[0,1,3,2] 的二进制表示是 [00,01,11,10] 。
- 00 和 01 有一位不同
- 01 和 11 有一位不同
- 11 和 10 有一位不同
- 10 和 00 有一位不同
[0,2,3,1] 也是一个有效的格雷码序列,其二进制表示是 [00,10,11,01] 。
- 00 和 10 有一位不同
- 10 和 11 有一位不同
- 11 和 01 有一位不同
- 01 和 00 有一位不同

示例2:

输入:n = 1
输出:[0,1]

题目解析:

规则法,根据上述定理可得格雷编码的规律,第i个格雷编码可以表示为(i>>1)^i

int* getgelei(int n,int *returnSize)
{int retsize = 1<<n;//左移把变量放在右侧*returnSize =retsize;//把最后返回数组的长度修改为2的n次方int *ret = (int*)malloc(sizeof(int)*retsize);//2的n次方内存占用for(int i = 0;i<retsize;i++){ret[i] = (i>>1)^i;//右移把变量放在左侧}return ret;
}
http://www.lryc.cn/news/581233.html

相关文章:

  • PostgreSQL表操作
  • 深度剖析:OPENPPP2 libtcpip 实现原理与架构设计
  • python缓存装饰器实现方案
  • python中执行前置操作,后置操作的几种方法
  • 【QT】事件(鼠标、按键、定时器、窗口)
  • JVM的位置和JVM的结构体系
  • Java创建型模式---工厂模式
  • PVE DDNS IPV6
  • 基于Elasticsearch的短视频平台个性化推荐系统设计与实现
  • SwiftUI 7(iOS 26)中玻璃化工具栏的艺术
  • 介绍electron
  • 基于spark的奥运会奖牌变化数据分析
  • 国产 OFD 标准公文软件数科 OFD 阅读器:OFD/PDF 双格式支持,公务办公必备
  • day44打卡
  • cmd 的sftp传输;Conda出现环境问题: error: invalid value for --gpu-architecture (-arch)
  • 浅度解读-(未完成版)浅层神经网络-多个隐层神经元
  • 前端-CSS-day1
  • 【openp2p】学习3:【专利分析】一种基于混合网络的自适应切换方法、装 置、设备及介质
  • WSL命令
  • 【爬虫】逆向爬虫初体验之爬取音乐
  • 大模型算法面试笔记——Bert
  • 计算机网络(网页显示过程,TCP三次握手,HTTP1.0,1.1,2.0,3.0,JWT cookie)
  • 一键将 SQL 转为 Java 实体类,全面支持 MySQL / PostgreSQL / Oracle!
  • 永磁同步电机无速度算法--基于锁频环前馈锁相环的滑模观测器
  • 使用SSH隧道连接远程主机
  • 五、Python新特性指定类型用法
  • 【赵渝强老师】Oracle RMAN的目录数据库
  • 数据库-元数据表
  • 事务的原子性
  • 自建双因素认证器 2FAuth 完美替代 Google Auth / Microsoft Auth