一份 Go 面经:答案期待一起完善
算法题
 
1、给定一个无序、无重复元素的整数数组和一个目标值,如果数组中有两个数之差等于目标值,就输出这两个数。请找到所有这样的整数对,且时间复杂度尽可能小∶
示例输入∶
array=[1,9,3,8,7,6,5,-9],t=5;
示例输出∶
result=[[6,1], [8,3]]
2、字符串原地压缩
压缩函数
 void compress(char[] str)
示例输入∶ str= [“a”,”a”,”b”,”b”,”c”,”c”,”c”]
示例输出∶ 无,str 此时变为[“a”,”2”,”b”,”2”,”c”,”3”]
3、 给定一组数据,求 W 树的树根值
注 1∶W树是一种叶子节点为整型数据,其余节点为子节点的加权乘法值的一类完全二叉树,子节点为空可视为此处数值为 0,如下图所示。
注2∶加权乘法具体为∶parent= 2 *left+3 *right。

输入∶ 叶子节点数据,用数组 int[]data 表示;
输出∶W树的树根值 int root 。
示例输入∶ data=[2,3,1]
示例输出∶root=32
20分钟,写两道
区块链
1、对区块链了解多少啊,共识知道吗
- pow 工作量证明 
- pos 股权证明 
- dpos 委托权益证明法 
2、说说pos
- 由系统权益代替算力来决定区块记账权,拥有的权益越大获得记账权的概率就越大 
Go
1、觉得go那儿设计的比较好
2、channel
- 有缓冲,无缓冲 
- 数据结构 
3、mutex
- 两种工作模式 
- 饥饿模式 
- 正常模式 
4、map
- 为什么线程不安全 
- 增删改会触发标志位,导致panic 
- 怎么实现高并发map 
- 只说了使用RWmutex 
5、slice
- slice如何扩容 
- 小于1024,复制2倍 
- 大于1024,内存对齐,大于1.25倍或2倍 
推荐阅读
评论
