当前位置: 首页 > 编程日记 > 正文

LeetCode实战:格雷编码

背景

  • 为什么你要加入一个技术团队?
  • 如何加入 LSGO 软件技术团队?
  • 我是如何组织“算法刻意练习活动”的?
  • 为什么要求团队的学生们写技术Blog

题目英文

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.

Example 1:

Input: 2
Output: [0,1,3,2]
Explanation:
00 - 0
01 - 1
11 - 3
10 - 2For a given n, a gray code sequence may not be uniquely defined.
For example, [0,2,3,1] is also a valid gray code sequence.00 - 0
10 - 2
11 - 3
01 - 1

Example 2:

Input: 0
Output: [0]
Explanation: We define the gray code sequence to begin with 0.A gray code sequence of n has size = 2n, which for n = 0 the size is 20 = 1.Therefore, for n = 0 the gray code sequence is [0].

题目中文

格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异。

给定一个代表编码总位数的非负整数 n,打印其格雷编码序列。格雷编码序列必须以 0 开头。

示例 1:

输入: 2
输出: [0,1,3,2]
解释:
00 - 0
01 - 1
11 - 3
10 - 2对于给定的 n,其格雷编码序列并不唯一。
例如,[0,2,3,1] 也是一个有效的格雷编码序列。00 - 0
10 - 2
11 - 3
01 - 1

示例 2:

输入: 0
输出: [0]
解释: 我们定义格雷编码序列必须以 0 开头。给定编码总位数为 n 的格雷编码序列,其长度为 2^n。当 n = 0 时,长度为 2^0 = 1。因此,当 n = 0 时,其格雷编码序列为 [0]

算法实现

雷格码

由 n 位推导 n+1 位结果时,n+1 位结果包含 n 位结果,同时包含 n 位结果中在高位再增加一个位 1 所形成的令一半结果,但是这一半结果需要与前一半结果镜像排列。

public class Solution
{public IList<int> GrayCode(int n){IList<int> lst = new List<int>();lst.Add(0);for (int i = 1; i <= n; i++){for (int j = lst.Count - 1; j >= 0; j--){int item = lst[j] + (1 << i - 1);lst.Add(item);}}return lst;}
}

实验结果

  • 状态:通过
  • 12 / 12 个通过测试用例
  • 执行用时: 296 ms, 在所有 C# 提交中击败了 95.83% 的用户
  • 内存消耗: 24.8 MB, 在所有 C# 提交中击败了 16.67% 的用户

提交结果


相关图文

1. “数组”类算法

  • LeetCode实战:三数之和
  • LeetCode实战:最接近的三数之和
  • LeetCode实战:求众数
  • LeetCode实战:缺失的第一个正数
  • LeetCode实战:快乐数
  • LeetCode实战:寻找两个有序数组的中位数
  • LeetCode实战:盛最多水的容器
  • LeetCode实战:删除排序数组中的重复项
  • LeetCode实战:搜索旋转排序数组
  • LeetCode实战:螺旋矩阵
  • LeetCode实战:螺旋矩阵 II

2. “链表”类算法

  • LeetCode实战:两数相加
  • LeetCode实战:删除链表的倒数第N个节点
  • LeetCode实战:合并两个有序链表
  • LeetCode实战:合并K个排序链表
  • LeetCode实战:两两交换链表中的节点
  • LeetCode实战:旋转链表
  • LeetCode实战:环形链表

3. “栈”类算法

  • LeetCode实战:有效的括号
  • LeetCode实战:最长有效括号
  • LeetCode实战:逆波兰表达式求值

4. “队列”类算法

  • LeetCode实战:设计循环双端队列
  • LeetCode实战:滑动窗口最大值
  • LeetCode实战:整数反转
  • LeetCode实战:字符串转换整数 (atoi)

5. “递归”类算法

  • LeetCode实战:爬楼梯

6. “字符串”类算法

  • LeetCode实战:反转字符串
  • LeetCode实战:翻转字符串里的单词
  • LeetCode实战:最长公共前缀
  • LeetCode实战:字符串相加
  • LeetCode实战:字符串相乘

7. “树”类算法

  • LeetCode实战:相同的树
  • LeetCode实战:对称二叉树
  • LeetCode实战:二叉树的最大深度
  • LeetCode实战:将有序数组转换为二叉搜索树

8. “哈希”类算法

  • LeetCode实战:两数之和

9. “搜索”类算法

  • LeetCode实战:搜索二维矩阵

10. “动态规划”类算法

  • LeetCode实战:最长回文子串
  • LeetCode实战:最大子序和
  • LeetCode实战:不同路径

11. “回溯”类算法

  • LeetCode实战:全排列

12. “数值分析”类算法

  • LeetCode实战:回文数
  • LeetCode实战:x 的平方根

相关文章:

Programmer of Practice Manual

这是我以前再读研究生的时候写的东东&#xff0c;希望搞计算机的同学&#xff0c;教计算机本科生学习技术的文章&#xff08;非算法类&#xff09;粘在这里纪念一下。 大一寒假 结构化编程基础&#xff1a; 图书&#xff1a;《How to C》 实践过程&#xff1a;完成课后的习题&a…

改善C#程序的建议3:在C#中选择正确的集合进行编码

原文:改善C#程序的建议3&#xff1a;在C#中选择正确的集合进行编码要选择正确的集合&#xff0c;我们首先要了解一些数据结构的知识。所谓数据结构&#xff0c;就是相互之间存在一种或多种特定关系的数据元素的集合。结合下图&#xff0c;我们看一下对集合的分类。 集合分类 …

Python工程师求职必知的经典面试题

最近几年&#xff0c;学习Python语言的同学越来越多&#xff0c;学成之后大家对于后期的面试都遇到了很多难题&#xff0c;小编这次为大家整理了一份关于Python工程师求职必知的经典面试题!希望能够帮助到正在找Python工作的同学们。 Python工程师求职必知的经典面试题&#xf…

LeetCode实战:二叉树中的最大路径和

背景 为什么你要加入一个技术团队&#xff1f;如何加入 LSGO 软件技术团队&#xff1f;我是如何组织“算法刻意练习活动”的&#xff1f;为什么要求团队的学生们写技术Blog 题目英文 Given a non-empty binary tree, find the maximum path sum. For this problem, a path i…

为Visual Studio添加配色方案

看到网上有一些教程&#xff0c;他们的代码截图&#xff0c;不是VS默认的白底黑字&#xff0c;觉得挺好看&#xff0c;就也把自己的VS鼓捣了一把&#xff1a; 使用的是现成的配色方案&#xff0c;试了好几种&#xff0c;就觉得这个看着舒服son-of-obsidian.vssettings 你可以去…

黑色星期五阿里云向海淘输出双11技术

本文讲的是"黑色星期五"阿里云向海淘输出双11技术【IT168资讯】11月27日零点&#xff0c;“黑色星期五”正式到来&#xff0c;虽然远在中国的消费者无法参与海外的实体抢购&#xff0c;但电商平台却给了他们从地球另一端参与“大抢购”的机会。随着近年海淘市场的不断…

专业的java培训机构是否靠谱,对比一下就知道了!

java在IT行业的火热是有目共睹的&#xff0c;所以市面上有很多机构都抓住了这点&#xff0c;开设了java培训课程&#xff0c;想要找到一个适合自己的java培训机构&#xff0c;多进行对比就知道了! 专业的java培训机构是否靠谱&#xff0c;对比一下就知道了!专业的Java培训机构靠…

LeetCode实战:环形链表 II

背景 为什么你要加入一个技术团队&#xff1f;如何加入 LSGO 软件技术团队&#xff1f;我是如何组织“算法刻意练习活动”的&#xff1f;为什么要求团队的学生们写技术Blog 题目英文 Given a linked list, return the node where the cycle begins. If there is no cycle, re…

.NET中使用OracleHelper

以前一直使用MSSQL,数据库操作类也是自己写的.现在项目使用Oracle,数据库操作类用的是MICROSOFT的DAAB中的OracleHelper.实际使用过程中,发现坛内少有此方面使用经验的贴子,故在这里把我使用中的一点经验用几个例子说明一下,希望起到抛砖引玉的作用. 查询数据方面: 1.简单的SQL…

新勒索软件DynA-Crypt不仅要加密你的文件,而且窃取并删除它们

本文讲的是新勒索软件DynA-Crypt不仅要加密你的文件&#xff0c;而且窃取并删除它们&#xff0c;一个名为DynA-Crypt的新勒索软件被GData公司的恶意软件分析师Karsten Hahn发现&#xff0c;DynA-Crypt不仅能加密你的数据&#xff0c;而且试图从受害者的计算机窃取大量信息。虽然…

【Postman】6 Postman 发送post请求-Json格式

一、post请求说明 使用postman发送一个post请求&#xff0c;在上文中测试流程中提到的4个要素&#xff1a;URL、请求方式、请求头部信息及body数据。 body中设置的请求参数&#xff0c;常见的有如下三种&#xff1a; 1、x-www-from-urlencoded格式 2、form data格式 3、Json格式…

LeetCode实战:最小栈

背景 为什么你要加入一个技术团队&#xff1f;如何加入 LSGO 软件技术团队&#xff1f;我是如何组织“算法刻意练习活动”的&#xff1f;为什么要求团队的学生们写技术Blog 题目英文 Design a stack that supports push, pop, top, and retrieving the minimum element in co…

配置国内 Docker Registry Mirror

由于国内特殊的网络环境&#xff0c;往往我们从Docker Hub中拉取镜像并不能成功&#xff0c;而且速度特别慢。 那么我们可以给Docker配置一个国内的registry mirror&#xff0c;当我们需要的镜像在mirror中则直接返回&#xff0c;如果没有则从Docker Hub中拉取。是否使用regist…

Java培训深度学习都要学什么

java的知识点有很多&#xff0c;如果是有java基础的同学&#xff0c;进行深度学习是非常有必要的&#xff0c;比较职场技能更新迭代非常的快&#xff0c;那么java培训深度学习都要学什么呢?来看看下面的详细介绍。 Java培训深度学习都要学什么? Java深度学习要掌握两点&#…

LeetCode实战:相交链表

背景 为什么你要加入一个技术团队&#xff1f;如何加入 LSGO 软件技术团队&#xff1f;我是如何组织“算法刻意练习活动”的&#xff1f;为什么要求团队的学生们写技术Blog 题目英文 Write a program to find the node at which the intersection of two singly linked lists…

# 30 天精通 RxJS (01):认识 RxJS

RxJS 是笔者认为未来几年内会非常红的 Library&#xff0c;RxJS 提供了一套完整的非同步解决方案&#xff0c;让我们在面对各种非同步行为&#xff0c;不管是 Event, AJAX, 还是 Animation 等&#xff0c;我们都可以使用相同的 API (Application Programming Interface) 做开发…

ThickBox 3.1参数详解(转)

前几天写了一篇关于ThickBox 3.1的文章&#xff1a;今天在使用这个东西的时候发现里面有许多参数没有详细解释&#xff0c;今天抽空整理出来&#xff0c;现和大家分享一下&#xff1a;先说几个参数&#xff1a;class"thickbox" 调用特效&#xff1b;height 打开页面的…

最新Java培训-NIO实战教程

Java NIO(New IO)是一个可以替代标准Java IO API的IO API(从Java 1.4开始)&#xff0c;Java NIO提供了与标准IO不同的IO工作方式。NIO可以理解为非阻塞IO,传统的IO的read和write只能阻塞执行&#xff0c;线程在读写IO期间不能干其他事情&#xff0c;比如调用socket.read()时&am…

获取执行SQL语句的返回结果

最近遇到的问题&#xff0c;在存储过程中需要拼接动态SQL语句&#xff0c;用变量保存&#xff0c;可直接使用EXECUTE SP_EXECUTESQL是不能获取想要的结果的 于是经过baidu了一番后&#xff0c;找到了解决的办法 declare coun int,sql nvarchar(2000)setsqlselect councount(*) …

Word文档使用密码加密

Word文档使用密码加密 方法如下&#xff1a; 文件-->信息-->保护文档-->用密码进行加密-->设置密码

LeetCode实战:反转链表

背景 为什么你要加入一个技术团队&#xff1f;如何加入 LSGO 软件技术团队&#xff1f;我是如何组织“算法刻意练习活动”的&#xff1f;为什么要求团队的学生们写技术Blog 题目英文 Reverse a singly linked list. Example: Input: 1->2->3->4->5->NULL Ou…

【UI设计培训】字体设计-偏旁部首变形

UI设计培训中字体设计也是非常重要的一节课&#xff0c;字体在UI设计岗位中可以说用到的频率是非常高的&#xff0c;是设计师必须学会并且要有娴熟运用的一项必备技能&#xff0c;在进行汉字设计的时候&#xff0c;可以把汉字拆分成几个偏旁部首的形式进行设计&#xff0c;这样…

【转帖】如何通过 javascript 访问 GridView/DataGrid 选中 CheckBox 行各列的值

功能需求1, 单击 checkbox 返回当前行值2, 外部按钮获取所有选择行的值实现说明参见主要代码&#xff0c;代码为自说明式。原文地址&#xff1a;http://www.cnblogs.com/Jinglecat/archive/2007/07/15/818967.html主要代码 <asp:GridView ID"GridView1" runat&q…

LeetCode实战:删除链表中的节点

背景 为什么你要加入一个技术团队&#xff1f;如何加入 LSGO 软件技术团队&#xff1f;我是如何组织“算法刻意练习活动”的&#xff1f;为什么要求团队的学生们写技术Blog 题目英文 Write a function to delete a node (except the tail) in a singly linked list, given on…

Facebook将React的许可改为MIT

Facebook决定将React原先的BSDPatents许可改为MIT&#xff0c;这样其他公司就可以将React包含在Apache基金会的项目当中&#xff0c;并消除与开源社区之间关系的不确定性。\\Facebook的一位工程主管Adam Wolff声称&#xff0c;将会有越来越多的项目使用MIT许可代替BSDPatents&a…

Java培训进阶书籍推荐,赶快收藏起来!

最近有很多学习或者已经在工作的java技术的同学都想要更进一步的提升自己&#xff0c;那么阅读书籍可以给大家带来帮助&#xff0c;今天&#xff0c;小编将分享过去几年中一些最好的Java培训进阶书籍&#xff0c;您可以在2021年阅读这些书籍&#xff0c;以更好地学习Java和相关…

LeetCode实战:二叉搜索树的最近公共祖先

背景 为什么你要加入一个技术团队&#xff1f;如何加入 LSGO 软件技术团队&#xff1f;我是如何组织“算法刻意练习活动”的&#xff1f;为什么要求团队的学生们写技术Blog 题目英文 Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given …

[转载] 杜拉拉升职记——02 单相思与性骚扰

来源&#xff1a;李可. 杜拉拉升职记(第三版). 西安: 陕西师范大学出版社, 2010, 5. 02 单相思与性骚扰的区别 拉拉注意到&#xff0c;DB所有经理办公室沿走道的这一面&#xff0c;都是用大块的玻璃来做间隔墙。 拉拉问海伦&#xff1a;“这么设计是为了美观吗&#xff1f;” …

走进云计算与虚拟化的底层核心

本文讲的是走进云计算与虚拟化的底层核心,2012年3月在国务院政府工作报告附录部分中&#xff0c;政府对云计算给出了官方的解释&#xff0c;体现了政府对云计算产业的高度重视和美好愿景。云计算在工作报告中是这样定义的&#xff1a;“云计算是基于互联网的服务的增加、使用和…

LeetCode实战:LRU缓存机制

背景 为什么你要加入一个技术团队&#xff1f;如何加入 LSGO 软件技术团队&#xff1f;我是如何组织“算法刻意练习活动”的&#xff1f;为什么要求团队的学生们写技术Blog 题目英文 Design and implement a data structure for Least Recently Used (LRU) cache. It should …