一份 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倍
推荐阅读
评论