自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 打印从1到最大的n位数(Golang)《剑指offer》

题目描述 题目:输入数字n,按顺序打印从1到最大的n位十进制数。比如输入3,则打印出1,2,3一直到最大的3位数999。 func Print1ToMaxOfDigits(n int) { if n <= 0 { return } number := make([]int, n)...

2019-09-22 19:59:17 128 0

原创 旋转数组的最小数字(Golang)《剑指offer》

题目描述: 题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如:数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 注意:本题中应充分考虑特殊情况 func finMinNum(n...

2019-08-02 17:33:43 122 0

原创 重建二叉树(Golang)《剑指offer》

题目描述: 输入某个二叉树的前序遍历和中序遍历的结果,请重建该二叉树。 假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如:输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建如图所示的二叉树并输出它的头节点。 主要代码如下: ty...

2019-07-20 18:32:06 196 0

原创 LeetCode 128. 最长连续序列(Golang)

给定一个未排序的整数数组,找出最长连续序列的长度。 要求算法的时间复杂度为 O(n)。 示例: 输入: [100, 4, 200, 1, 3, 2] 输出: 4 解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。 func longestConsecutive(nums []in...

2019-07-11 10:42:57 145 0

原创 EKT搭建私链

1.首先,打开终端,将目录切换到EKT路径下,输入命令make,此命令会编译EKT项目cmd包下的两个main.go文件 2.编译完成之后,会在EKT目录下产生一个bin目录,将路径切换到bin目录中,新建一个创世区块文件genesis.json,内容类似下面这样 { "vers...

2019-01-02 22:41:09 673 0

原创 LeetCode 234. 回文链表(Golang)

请判断一个链表是否为回文链表。 示例 1: 输入: 1-&gt;2 输出: false 示例 2: 输入: 1-&gt;2-&gt;2-&gt;1 输出: true 进阶: 你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题? 思路:遍历链表,将所有...

2018-11-06 22:10:48 290 0

原创 LeetCode 17. 电话号码的字母组合(Golang)

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例: 输入:&amp;quot;23&amp;quot; 输出:[&amp;quot;ad&amp;quot;, &...

2018-10-29 22:02:53 320 0

原创 LeetCode 11. 盛最多水的容器(Golang)

给定 n 个非负整数a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 说明:你不能倾斜容器,且 n 的值至少为 2。 ...

2018-10-29 22:00:13 182 0

原创 LeetCode 8. 字符串转整数 (atoi)(Golang)

实现 atoi,将字符串转为整数。 该函数首先根据需要丢弃任意多的空格字符,直到找到第一个非空格字符为止。如果第一个非空字符是正号或负号,选取该符号,并将其与后面尽可能多的连续的数字组合起来,这部分字符即为整数的值。如果第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。 字符...

2018-10-29 21:56:19 494 0

原创 LeetCode 628. 三个数的最大乘积(Golang)

给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积。 示例 1: 输入: [1,2,3] 输出: 6 示例 2: 输入: [1,2,3,4] 输出: 24 注意: 1.给定的整型数组长度范围是[3,104],数组中所有的元素范围是[-1000, 1000]。 2.输入的数组中...

2018-10-22 21:41:16 148 0

原创 LeetCode 441. 排列硬币(Golang)

你总共有 n 枚硬币,你需要将它们摆成一个阶梯形状,第 k 行就必须正好有 k 枚硬币。 给定一个数字 n,找出可形成完整阶梯行的总行数。 n 是一个非负整数,并且在32位有符号整型的范围内。 示例 1: n = 5 硬币可排列成以下几行: ¤ ¤ ¤ ¤ ¤ 因为第三行不完整,所以返回2. ...

2018-10-22 21:37:36 133 0

原创 LeetCode 258. 各位相加(Golang)

给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。 示例: 输入: 38 输出: 2 解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2。 由于 2 是一位数,所以返回 2。 进阶: 你可以不使用循环或者递归,且在 O(1) 时间复杂度内解决这个问题吗? ...

2018-10-22 21:34:00 106 0

原创 LeetCode 19. 删除链表的倒数第N个节点(Golang)

给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 给定一个链表: 1-&gt;2-&gt;3-&gt;4-&gt;5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1-&gt;2-&gt;3-&gt;5....

2018-10-15 19:16:48 484 0

原创 LeetCode 414. 第三大的数(Golang)

给定一个非空数组,返回此数组中第三大的数。如果不存在,则返回数组中最大的数。要求算法时间复杂度必须是O(n)。 示例 1: 输入: [3, 2, 1] 输出: 1 解释: 第三大的数是 1. 示例 2: 输入: [1, 2] 输出: 2 解释: 第三大的数不存在...

2018-10-13 18:26:50 109 0

原创 LeetCode 338. 比特位计数(Golang)

给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。 示例 1: 输入: 2 输出: [0,1,1] 示例 2: 输入: 5 输出: [0,1,1,2,1,2] 进阶: 给出时间复杂度为O(...

2018-10-11 23:13:05 112 0

原创 LeetCode 104. 二叉树的最大深度(Golang)

给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7...

2018-10-11 23:07:22 169 0

原创 LeetCode 83. 删除排序链表中的重复元素(Golang)

给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。 示例 1: 输入: 1-&amp;gt;1-&amp;gt;2 输出: 1-&amp;gt;2 示例 2: 输入: 1-&amp;gt;1-&amp;gt;2-&amp;g...

2018-10-11 23:05:13 197 0

原创 LeetCode 82. 删除排序链表中的重复元素 II(Golang)

给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。 示例 1: 输入: 1-&amp;gt;2-&amp;gt;3-&amp;gt;3-&amp;gt;4-&amp;gt;4-&amp;gt;5 输出: 1-...

2018-10-11 23:02:45 185 0

原创 LeetCode 80. 删除排序数组中的重复项 II(Golang)

给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 1: 给定 nums = [1,1,1,2,2,3], 函数应返回新长度 length...

2018-10-11 23:00:56 318 0

原创 LeetCode 21. 合并两个有序链表(Golang)

将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1-&amp;gt;2-&amp;gt;4, 1-&amp;gt;3-&amp;gt;4 输出:1-&amp;gt;1-&amp;gt;...

2018-10-11 22:57:09 716 0

原创 LeetCode 20. 有效的括号(Golang)

给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例 1: 输入: &quot;()&quot; ...

2018-10-11 22:54:58 302 0

原创 LeetCode 9. 回文数(Golang)

判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数...

2018-10-11 22:52:12 206 0

原创 LeetCode 7. 反转整数(Golang)

给定一个 32 位有符号整数,将整数中的数字进行反转。 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: 21 注意: 假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−23...

2018-10-11 22:49:09 319 0

原创 LeetCode 2. 两数相加(Golang)

给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。 你可以假设除了数字 0 之外,这两个数字都不会以零开头。 示例: 输入:(2 -&amp;amp;gt; 4 -&amp;amp;gt; 3) + (5 -...

2018-10-11 22:40:48 239 0

原创 Solidity智能合约案例——投票存在的问题

通过对Solidity官方文档的学习,发现投票案例代码有些不够严谨,简要做以下说明。 1. 调用者问题 在vote函数中,如果是一个没有投票权的地址(假设A地址)调用了vote 函数,代码也能顺利执行。 首先,A地址虽然没有被chairperson 赋予投票权,但是代码也能正常获取Voter...

2018-08-12 17:16:28 654 1

原创 比特币中的Base58和Base58Check编码

为了更简洁方便地表示长串的数字,使用更少的符号,计算机系统会使用一种以数字和字母组成的大于十进制的表示法,比如十六进制,一个同样的数字,它的十六进制表示就会比十进制表示更加简洁。Base64使用了26个小写字母、26个大写字母、10个数字以及两个符号(“+”和“/”),用于在电子邮件这样的基于文本...

2018-07-23 15:19:46 3684 0

原创 公钥私钥以及比特币地址的产生过程

一个比特币钱包包含一系列的密钥对,每个密钥对都有一个公钥(PublicKey)和私钥(PrivateKey)。私钥是由一个随机产生的数字串经过哈希的十六进制字符串,通过椭圆加密算法可以用私钥产生公钥,然后就可以通过公钥产生比特币地址。从私钥到公钥再到比特币地址是一个单向产生的过程,也就是说不能反向...

2018-07-23 14:00:03 10780 5

原创 Ubuntu命令卸载软件

1.打开一个终端,输入dpkg --list ,按下Enter键,终端输出以下内容,显示的是你电脑上安装的所有软件。 2.在终端中找到你需要卸载的软件的名称,列表是按照首字母排序的。 3.在终端上输入命令sudo apt-get --purge remove 包名(--purge是可选...

2018-07-01 20:31:06 90806 1

原创 HyperLedger Fabric - 超级账本(10)简单的资产链码(chaincode)

应用程序是一个基本样本链代码,用于在分类账上创建资产 安装Go及Docker, Docker-compose, 并配置Go相应的环境变量 创建目录 为chaincode应用程序创建一个目录作为其子目录 $ mkdir -p $GOPATH/src/test $ cd $GOPATH/...

2018-06-26 12:46:25 1158 0

原创 HyperLedger Fabric - 超级账本(9)区块链应用开发

简介 数字货币曾是区块链技术的唯一应用场景 对智能合约的支持突破了场景限制, 丰富了区块链应用的适用范围, 可以支持多行业、大规模的商业应用 区块链应用 区块链应用: 一般由若干部署在区块链网络中的智能合约, 以及调用这些智能合约的应用程序组成 用户专注于与业务本身相关的应用程序 ...

2018-06-26 11:45:52 1180 0

原创 HyperLedger Fabric - 超级账本(8)Node测试

node测试 关闭网络 $ sudo ./byfn.sh -m down 进入到fabric-samples/fabcar目录中 $ cd ../fabcar/ $ ls 如果是完整的环境,目录中应该包含如下文件: enrollAdmin.js invoke...

2018-06-26 11:42:27 605 0

原创 HyperLedger Fabric - 超级账本(7)Fabric CA 应用与配置

简介 Fabric CA项目是超级账本Fabric内的MemberService组件, 对网络内各个实体的身份证书的管理, 主要实现: 负责Fabric网络内所有实体(Identity)的身份管理, 包括身份的注册、注销等 负责证书管理, 包括ECerts(身份证书)、TCerts(交易证书...

2018-06-25 16:13:17 1431 2

原创 HyperLedger Fabric - 超级账本(6)转换配置&添加组织到channel

configtxlator转换配置/添加Org组织到channel 设置环境 进入到fabric-samples/first-network目录中, 执行.byfn.sh -m down关闭网络,清理之前的任何环境 $ cd $HOME/hyfa/fabric-samples/fir...

2018-06-25 08:39:54 1007 0

原创 HyperLedger Fabric - 超级账本(5)使用多通道

使用多通道 $ cd ~/hyfa/fabric-samples/chaincode-docker-devmode $ sudo docker-compose -f docker-compose-simple.yaml down $ cd ../first-network 创...

2018-06-22 11:29:07 1745 0

原创 HyperLedger Fabric - 超级账本(4)链码的概念与使用

概念: Chaincode: 链上代码, 简称链码, 一般是指用户编写的应用代码 链码被部署在Fabric网络节点上, ​ Peer 节点 ​ – 背书节点 ​ – commit节点 ​ – Leader节点 ​ – 锚节点 运...

2018-06-22 11:26:11 1628 2

原创 HyperLedger Fabric - 超级账本(3)测试链码

测试链码 确定进入CLI容器中 $ sudo docker exec -it cli bash Peer加入应用通道后, 可以执行链码相关操作,进行测试 链码在调用之前, 必须先经过安装和实例化两个步骤, 部署到Peer节点上. 检查环境变量是否正确设置 echo $CHANN...

2018-06-22 11:13:03 720 0

原创 HyperLedger Fabric - 超级账本(2.2)启动网络 - 手动

启动网络手动实现 实现步骤 生成组织关系和身份证书 确定是在 fabric-samples/first-network 路径下 $ cd hyfa/fabric-samples/first-network/ 为fabric网络生成指定拓扑结构的组织关系和身份证书 $...

2018-06-20 17:11:47 886 0

原创 HyperLedger Fabric - 超级账本(2.1)启动网络 - 自动

进入对应目录 $ cd fabric-samples/first-network 在first-network目录下有两个自动化脚本byfn.sh和eyfn.sh, 这两个脚本的启动顺序是先执行byfn.sh再执行eyfn.sh(eyfn.sh不是必须的,eyfn.sh的作用稍后介绍) 查看...

2018-06-20 11:16:31 797 0

原创 HyperLedger Fabric - 超级账本(1)环境搭建

环境搭建 快速入门: http://hyperledger-fabric.readthedocs.io/en/release-1.1/getting_started.html 前提 安装git $ sudo apt update $ sudo apt install git ...

2018-06-19 11:19:56 893 0

原创 以太坊源码解析 - 以太坊P2P协议

创建P2P server func (n *Node) Start() error { ... // Initialize the p2p server. This creates the node key and // discovery databases. ...

2018-06-18 22:14:14 1518 0

提示
确定要删除当前文章?
取消 删除