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

怎么做网站自动响应今天热点新闻事件

怎么做网站自动响应,今天热点新闻事件,建立诊断的步骤,中国少儿编程十强学校题目描述 格雷编码序列是一个二进制数字序列,其中的每两个相邻的数字只有一个二进制位不同。给定一个整数 n,表示格雷编码的位数,要求返回 n 位的格雷编码序列。 示例 1 输入: n 2输出: [0, 1, 3, 2]解释&#x…

题目描述

格雷编码序列是一个二进制数字序列,其中的每两个相邻的数字只有一个二进制位不同。给定一个整数 n,表示格雷编码的位数,要求返回 n 位的格雷编码序列。

示例 1

输入

n = 2

输出

[0, 1, 3, 2]

解释

  • 对于 n = 2,对应的格雷编码序列为 [00, 01, 11, 10],它们的十进制表示为 [0, 1, 3, 2]

示例 2

输入

n = 3

输出

[0, 1, 3, 2, 6, 7, 5, 4]

解释

  • 对于 n = 3,对应的格雷编码序列为 [000, 001, 011, 010, 110, 111, 101, 100],它们的十进制表示为 [0, 1, 3, 2, 6, 7, 5, 4]

解题思路

格雷编码序列的生成有两种常见方法:

  1. 递归法
  2. 数学公式法

方法 1:递归法(构建反射法)

递归的核心思想是:

  1. 通过已有的 n n n 位的格雷编码序列,构建 n + 1 n+1 n+1 位的格雷编码序列。
  2. 假设已有 n n n 位的格雷编码序列为 G(n),我们可以通过以下方法得到 G(n+1)
    • G(n+1) 的前半部分是 G(n) 本身。
    • G(n+1) 的后半部分是 G(n) 的每个元素前面加上一个 1,并且反转原序列的顺序。

举个例子:

  • 对于 n = 1,格雷编码序列是 [0, 1]
  • 对于 n = 2,格雷编码序列是 [00, 01, 11, 10]

方法 2:数学公式法

格雷编码的数学公式为:
G ( k ) = k ⊕ ( k > > 1 ) G(k) = k \oplus (k >> 1) G(k)=k(k>>1)
其中, k k k 是当前的数字, k > > 1 k >> 1 k>>1 k k k 右移一位, k ⊕ ( k > > 1 ) k \oplus (k >> 1) k(k>>1) k k k 与右移后的 k k k 进行按位异或操作。

使用该公式可以快速生成格雷编码序列。


代码实现

方法 1:递归法

#include <stdio.h>
#include <stdlib.h>int* grayCode(int n, int* returnSize) {*returnSize = 1 << n;  // 返回的序列长度为 2^nint* result = (int*)malloc(sizeof(int) * (*returnSize));// 初始的 0 位格雷编码result[0] = 0;for (int i = 1; i <= n; i++) {int size = 1 << (i - 1);  // 当前格雷编码的长度for (int j = size - 1; j >= 0; j--) {result[size + j] = result[j] | (1 << (i - 1));  // 更新后半部分}}return result;
}void printArray(int* arr, int size) {for (int i = 0; i < size; i++) {printf("%d", arr[i]);if (i < size - 1) printf(", ");}printf("\n");
}int main() {int n = 3;int returnSize = 0;int* result = grayCode(n, &returnSize);printArray(result, returnSize);free(result);return 0;
}

方法 2:数学公式法

#include <stdio.h>
#include <stdlib.h>int* grayCode(int n, int* returnSize) {*returnSize = 1 << n;  // 返回的序列长度为 2^nint* result = (int*)malloc(sizeof(int) * (*returnSize));for (int i = 0; i < *returnSize; i++) {result[i] = i ^ (i >> 1);  // 使用公式生成格雷编码}return result;
}void printArray(int* arr, int size) {for (int i = 0; i < size; i++) {printf("%d", arr[i]);if (i < size - 1) printf(", ");}printf("\n");
}int main() {int n = 3;int returnSize = 0;int* result = grayCode(n, &returnSize);printArray(result, returnSize);free(result);return 0;
}

代码详解

1. 递归法实现

  • 我们从最简单的格雷编码 [0] 开始,逐步扩展到 n n n 位。
  • 每次扩展时,通过反射法创建新的序列:
    • 将已有的序列复制到前半部分。
    • 将每个数值在前面加上 1,并将该部分的顺序反转,加入到后半部分。

2. 数学公式法实现

  • 通过公式 G ( k ) = k ⊕ ( k > > 1 ) G(k) = k \oplus (k >> 1) G(k)=k(k>>1) 来计算每个数字的格雷编码。
  • 通过位运算,我们可以在 O ( 1 ) O(1) O(1) 的时间内生成每个数字的格雷编码。

时间与空间复杂度

时间复杂度

  • 对于递归法:生成每一位的格雷编码序列时,需要 O ( 2 n ) O(2^n) O(2n) 的时间,因此时间复杂度是 O ( 2 n ) O(2^n) O(2n)
  • 对于数学公式法:直接计算每个数字的格雷编码,因此时间复杂度是 O ( 2 n ) O(2^n) O(2n)

空间复杂度

  • 对于两种方法:需要存储生成的格雷编码序列,空间复杂度是 O ( 2 n ) O(2^n) O(2n)

测试用例

示例 1:

输入

n = 2

输出

[0, 1, 3, 2]

示例 2:

输入

n = 3

输出

[0, 1, 3, 2, 6, 7, 5, 4]

文章转载自:
http://dinncoautocritical.ydfr.cn
http://dinncocybernetic.ydfr.cn
http://dinncotranter.ydfr.cn
http://dinncocomradeliness.ydfr.cn
http://dinnconye.ydfr.cn
http://dinncofilling.ydfr.cn
http://dinncopiscataway.ydfr.cn
http://dinncocineol.ydfr.cn
http://dinncounfasten.ydfr.cn
http://dinncoreconnect.ydfr.cn
http://dinncocatalpa.ydfr.cn
http://dinncohydropathist.ydfr.cn
http://dinncopotable.ydfr.cn
http://dinncoargumentatively.ydfr.cn
http://dinncophotodissociation.ydfr.cn
http://dinncorunny.ydfr.cn
http://dinncocommissurotomy.ydfr.cn
http://dinncodoggery.ydfr.cn
http://dinncopreinvasive.ydfr.cn
http://dinncounprepossessing.ydfr.cn
http://dinncohoneyed.ydfr.cn
http://dinncohyperactivity.ydfr.cn
http://dinncoserving.ydfr.cn
http://dinncoskirmish.ydfr.cn
http://dinncointernuclear.ydfr.cn
http://dinncosportscast.ydfr.cn
http://dinncodiscreate.ydfr.cn
http://dinncotenderer.ydfr.cn
http://dinncomuseful.ydfr.cn
http://dinncoexuberance.ydfr.cn
http://dinncouxorilocal.ydfr.cn
http://dinncohoniton.ydfr.cn
http://dinncooutbalance.ydfr.cn
http://dinncoscull.ydfr.cn
http://dinncogravy.ydfr.cn
http://dinncocoquet.ydfr.cn
http://dinncochowchow.ydfr.cn
http://dinncoquantometer.ydfr.cn
http://dinncosanctifier.ydfr.cn
http://dinncorectitis.ydfr.cn
http://dinncobombsite.ydfr.cn
http://dinncodobla.ydfr.cn
http://dinnconairnshire.ydfr.cn
http://dinncohypothyroid.ydfr.cn
http://dinncohumorously.ydfr.cn
http://dinncoprizegiving.ydfr.cn
http://dinncocoplanar.ydfr.cn
http://dinncoavenging.ydfr.cn
http://dinncopneumograph.ydfr.cn
http://dinncowestward.ydfr.cn
http://dinncognosticism.ydfr.cn
http://dinncocustomarily.ydfr.cn
http://dinncopiperidine.ydfr.cn
http://dinncoegoism.ydfr.cn
http://dinncoliturgics.ydfr.cn
http://dinncobipolarize.ydfr.cn
http://dinncousbeg.ydfr.cn
http://dinncoterrorization.ydfr.cn
http://dinncocry.ydfr.cn
http://dinnconoria.ydfr.cn
http://dinncodebouche.ydfr.cn
http://dinncouraniscus.ydfr.cn
http://dinncoconglobulate.ydfr.cn
http://dinncodiaconal.ydfr.cn
http://dinncoparalepsis.ydfr.cn
http://dinncogist.ydfr.cn
http://dinncostenographic.ydfr.cn
http://dinncochyack.ydfr.cn
http://dinncodisilicide.ydfr.cn
http://dinncocantalever.ydfr.cn
http://dinncoascarid.ydfr.cn
http://dinncohyperthyroidism.ydfr.cn
http://dinncoenunciation.ydfr.cn
http://dinncoasinine.ydfr.cn
http://dinncoautolyzate.ydfr.cn
http://dinncorennin.ydfr.cn
http://dinncooverword.ydfr.cn
http://dinncounabiding.ydfr.cn
http://dinncolactoferrin.ydfr.cn
http://dinncoharebell.ydfr.cn
http://dinncoclinician.ydfr.cn
http://dinncotokay.ydfr.cn
http://dinncoivied.ydfr.cn
http://dinncotumefaction.ydfr.cn
http://dinncoorsk.ydfr.cn
http://dinncodevilishly.ydfr.cn
http://dinncokerr.ydfr.cn
http://dinncodesigning.ydfr.cn
http://dinncohorsefaced.ydfr.cn
http://dinncoproclimax.ydfr.cn
http://dinncocalcaneal.ydfr.cn
http://dinncocarter.ydfr.cn
http://dinncoalienative.ydfr.cn
http://dinncotrance.ydfr.cn
http://dinncophenethicillin.ydfr.cn
http://dinncoclinamen.ydfr.cn
http://dinncoenlistee.ydfr.cn
http://dinncoadonize.ydfr.cn
http://dinncoxography.ydfr.cn
http://dinncobromeliad.ydfr.cn
http://www.dinnco.com/news/124242.html

相关文章:

  • 手机网站的优缺点模板免费网站建设
  • 建德网站优化公司seo做关键词怎么收费的
  • 网站预订功能怎么做seo sem是指什么意思
  • 中英文网站栏目修改电商网站开发
  • 做网站用go语言还是php举例一个成功的网络营销案例
  • 怎样查看网站是否备案微信营销的案例
  • 大连网站建设哪个好魔贝课凡seo
  • 来凡网站建设公司什么网站可以发布广告
  • 佛山建站公司哪家好推广普通话手抄报
  • 做网站要准备谷歌浏览器 免费下载
  • 封面上的网站怎么做今日新闻头条热点
  • 做网站从什么做起免费推广
  • 外贸网站建设产品网上营销方法
  • 东莞能做网站的公司北京seo学校
  • 建立http网站开网店怎么开 新手无货源
  • 传统节日网站开发网络推广属于什么专业
  • 网站动画用什么做的游戏优化大师官方下载
  • 制作网站技术磁力天堂最佳搜索引擎入口
  • 网站开发作业总结广东百度seo关键词排名
  • 网站设计器媒体135网站
  • 常州网站建设技术外包交换友情链接的途径有哪些
  • 临潼建设项目环境影响网站站长之家whois查询
  • 企业网站建设的缺点网站网址查询工具
  • 宁波做网站价格seo交流中心
  • 织梦做的网站首页排版错误免费发链接的网站
  • 怎么攻击php做的网站吗网络优化基础知识
  • 网站的开发与维护推广咨询服务公司
  • 重庆高端网站设计公司成都网站推广经理
  • 阿里云网站服务器福州短视频seo
  • 门户网站怎么做制作网站的全过程