摘要: 1、在64位机器上, int的长度为8字节,等于int64长度, int32为4字节长度 2、修改切片len的值的方法: 切片的结构: 阅读全文
posted @ 2018-05-20 21:21 游鸿 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 分布式哈希表是分布式存储系统中常见的一项技术,是哈希表的分布式扩展。一致性哈希是其中的一种。 1、普通哈希分布带来的问题 (1)新增或者减少节点都会引起所有key的失效 (2)分布不均衡,比如数据倾斜(即大部分数据分布到了其中一个哈希节点中) 2、一致性哈希算法 思想:给系统中的每个节点分配一个随机 阅读全文
posted @ 2018-05-01 20:28 游鸿 阅读(156) 评论(0) 推荐(0) 编辑
摘要: RWMutex:是基于Mutex实现的读写互斥锁,一个goroutine可以持有多个读锁或者一个写锁,同一时刻只能持有读锁或者写锁 阅读全文
posted @ 2018-04-30 21:17 游鸿 阅读(525) 评论(0) 推荐(0) 编辑
摘要: go语言提供了一种开箱即用的共享资源的方式,互斥锁(sync.Mutex), sync.Mutex的零值表示一个没有被锁的,可以直接使用的,一个goroutine获得互斥锁后其他的goroutine只能等到这个gorutine释放该互斥锁,在Mutex结构中只公开了两个函数,分别是Lock和Unlo 阅读全文
posted @ 2018-04-30 19:27 游鸿 阅读(1439) 评论(0) 推荐(0) 编辑
摘要: 题目: 给定两个字符串str1和str2,在给定三个整数ic,dc和rc,分别代表插入、删除和替换一个 字符,返回将str1编辑成str2的最小代价。 解题方法: 动态规划。首先生成大小为(M+1)X(N+1)的矩阵dp。 假设str1="av=b12cd3", str2="abcdf"。dp[i] 阅读全文
posted @ 2018-04-30 14:54 游鸿 阅读(577) 评论(0) 推荐(0) 编辑
摘要: 解题方法: 首先生成动态规划表dp,生成规则如下: 对于两个字符串str1和str2,dp[i][j]表示将str1[i]和str[j]作为公共子串最后一个字符的长度 非第一行,第一列: 如果str1[i]==str2[j],则dp[i][j] = dp[i-1][j-1]+1 如果str1[i] 阅读全文
posted @ 2018-04-29 17:13 游鸿 阅读(1617) 评论(0) 推荐(0) 编辑
摘要: 以下解题方法来自于他人! 题目: 一副牌,序号从1到n,每次从牌堆顶部拿出一张牌放在桌子上,并将下一张牌放到牌堆地下,依次循环,最终在桌子上的牌从1到n的有序。设计程序实现 1、模拟这个过程: 建立一个队列,将数字1到n依次入队,作为牌堆中从牌堆顶部到最后一张牌的次序。按照题意从数组中取数,比如拿出 阅读全文
posted @ 2018-04-28 01:41 游鸿 阅读(1258) 评论(0) 推荐(0) 编辑
摘要: 题目: 给定两个字符串str1和str2,返回两个字符串的最长公共子序列 举例: str1 = "1A2C3D4B56" str2 = "B1D23CA45B6A" 它们的最长公共子序列为:"123456" 或 "12C4B6" 解题方法: 经典的动态规划方法: 根据状态方程可以得到由str1和st 阅读全文
posted @ 2018-04-28 00:23 游鸿 阅读(975) 评论(0) 推荐(0) 编辑
摘要: 可以得到该方法的时间复杂度为O(n2) 阅读全文
posted @ 2018-04-25 13:17 游鸿 阅读(696) 评论(0) 推荐(0) 编辑
摘要: 布隆过滤器常常被用来检测某个元素是否是巨量数据集合中的成员 1、基本原理: (1)将长度为m的位数组元素全部置为0; (2)对集合S中的某个成员a,分别用k个哈希函数对其计算,如果hi(a)=x(1<=i<=k, 1<=x<=m),则将位数组的第x位置为1,对于成员a来说,可能会将位数组中w(w<= 阅读全文
posted @ 2018-04-22 20:55 游鸿 阅读(157) 评论(0) 推荐(0) 编辑