
go
s15738841819
这个作者很懒,什么都没留下…
展开
-
爬楼梯 go语言
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 ...原创 2018-11-20 16:33:07 · 457 阅读 · 0 评论 -
PoS——权益证明 go简单实现
⚫PoS(Proof of Stake)译为权益证明,是一种在公链中的共识算法,可作为 PoW 算 法的一种替换⚫基于权益证明的数字货币中,下一个区块的选择是根据不同节点的股份和时间进行 随机选择的⚫PoS 的设计理念,来自于对比特币危机的思考,比特币的区块产量每 4 年会减半, 在不久的未来,随着比特币区块包含的产量越来越低,大家挖矿的动力将会不断下 降,矿工人数越来越少,整个比...原创 2018-11-20 09:46:47 · 798 阅读 · 0 评论 -
DPoS——股份授权证明 go简单实现
⚫ DPoS 即 Delegated Proof of Stake 译为股份授权证明⚫ 最早于 2013 年由 Bitshares 提出,目的为解决 PoW 和 PoS 机制的不足⚫DPoS 机制的加密货币,每个节点都可以操作区块,并按照个人的持股比例获得“利 息”⚫DPoS 是由被社区选举的可信帐户(受托人,得票数排行前 101 位)来创建区块, 为了成为正式受托人,用户要去...原创 2018-11-20 10:09:38 · 626 阅读 · 0 评论 -
PBFT——拜占庭算法 go简单实现
BFT 是什么⚫ BFT( Byzantine Fault Tolerance)称为拜占庭容错⚫ 拜占庭容错技术是一类分布式计算领域的容错技术,用来解决拜占庭问题,拜占庭假设是对现实世界的模型化,由于硬件错误、网络拥塞或中断以及遭到恶意攻击等原因,计算机和网络也有可能出现不可预料的行为⚫ 拜占庭容错技术被设计用来处理这些异常行为,并满足所要解决的问题的规范要求拜占庭容错系统...原创 2018-11-20 10:22:09 · 5502 阅读 · 5 评论 -
Raft——分布式一致性算法 go简单实现
Raft 是什么⚫ Raft 提供了一种在计算系统集群中分布状态机的通用方法,确保集群中的每个节点 都同意一系列相同的状态转换⚫ 它有许多开源参考实现,具有 Go,C ++,Java 和 Scala 中的完整规范实现⚫ 一个 Raft 集群包含若干个服务器节点,通常是 5 个,这允许整个系统容忍 2 个节 点的失效,每个节点处于以下三种状态之一◼follower(跟随者) ...原创 2018-11-20 10:28:57 · 2485 阅读 · 3 评论 -
合并两个有序数组 go实现
给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 =...原创 2018-11-20 10:30:59 · 989 阅读 · 1 评论 -
字谜分组 go实现
给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: ["eat", "tea", "tan", "ate", "nat", "bat"],输出:[ ["ate","eat","tea"], ["nat","tan"],原创 2018-11-29 15:43:09 · 205 阅读 · 0 评论 -
无重复字符的最长子串 go实现
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 ".原创 2018-11-29 16:04:35 · 262 阅读 · 0 评论 -
最长回文子串 go实现
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"func longestPalindrome(s string) string { n:=len(s) if s=="" {原创 2018-11-30 16:25:57 · 464 阅读 · 0 评论 -
PoW——工作量证明 go实现
Proof-of-Work 简称 PoW,即为工作量证明⚫通过计算一个数值,使得拼揍上交易数据后内容的值满足规定的上限,在节点成功 找到满足的 Hash 值之后,会马上对全网进行广播打包区块,网络的节点收到广播 打包区块,会立刻对其进行验证⚫网络中只有最快解密的区块,才会添加的账本中,其他的节点进行复制,这样就保 证了整个账本的唯一性⚫假如节点有任何的作弊行为,都会导致网络的节点验...原创 2018-11-20 09:30:49 · 400 阅读 · 0 评论 -
最小栈 go实现
设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x) -- 将元素 x 推入栈中。pop() -- 删除栈顶的元素。top() -- 获取栈顶元素。getMin() -- 检索栈中的最小元素。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0...原创 2018-11-22 21:24:50 · 499 阅读 · 0 评论 -
买卖股票的最佳时机 go语言
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 ...原创 2018-11-20 17:04:10 · 618 阅读 · 0 评论 -
最大子序和 go实现
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。func maxSubArray(nums []int) in...原创 2018-11-21 21:48:30 · 159 阅读 · 0 评论 -
go队列简单实现
队列概述队列是数据按照先进先出 FIFO(First-In-First-Out) 原则组成的集合,类比排队,在队列任一端添加元素,从对应的另一端删除元素。使用 slice 动态类型来实现队列,元素的类型为通用类型 ItemQueue ,实现以下常用操作:package queueimport ( "github.com/cheekybits/genny/generic" "s...原创 2018-11-19 16:01:47 · 558 阅读 · 0 评论 -
go实现栈
栈概述栈是数据按照后进先出 LIFO(Last-In-First-Out) 原则组成的集合。添加和移除元素都是在栈顶进行,类比书堆,不能在栈底增删元素。栈的应用很广泛,比如网页跳转后一层层返回,ctrl+z 撤销操作等。使用 slice 动态类型来实现栈,栈元素的类型是使用 genny 创建的通用类型 ItemStack,实现以下常用操作:package stackimport...原创 2018-11-19 16:05:12 · 193 阅读 · 0 评论 -
二叉树的层次遍历 go语言
给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]var result [][]intfunc levelOrder1...原创 2018-11-19 19:54:12 · 2104 阅读 · 0 评论 -
将有序数组转换为二叉搜索树 go实现
将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -1...原创 2018-11-19 20:09:14 · 478 阅读 · 0 评论 -
打家劫舍 go实现
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [1,2,3,1]输出: 4解释: 偷窃 1 号房屋 (金额 = 1) ,然后偷窃...原创 2018-11-22 16:35:42 · 151 阅读 · 0 评论 -
Shuffle an Array go实现
打乱一个没有重复元素的数组。示例:// 以数字集合 1, 2 和 3 初始化数组。int[] nums = {1,2,3};Solution solution = new Solution(nums);// 打乱数组 [1,2,3] 并返回结果。任何 [1,2,3]的排列返回的概率应该相同。solution.shuffle();// 重设数组到它的初始状态[1,2,3]。...原创 2018-11-22 17:44:59 · 558 阅读 · 0 评论 -
三数之和 go实现
给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]func thre...原创 2018-11-28 15:15:38 · 531 阅读 · 0 评论