探探软件开发岗面试题目汇总(社招)
探探
项目相关
算法
输入一个不含相同整数的整数集合,输出所有子集
输入:[1,2,3]
输出:[[],[1],[2],[3],[1,2],[1,3],[2,3],[1,2,3]]
有三十瓶水,十个桶,每个桶能放0-10瓶水,有多少种方案
一个整数数组,只有一个数字出现一次,其余都是出现两次,找出只出现一次的数字
Java基础
HashMap实现,扩容机制
ConcurrentHashMap如何实现线程安全
MySQL
B树和B+树区别
聚簇索引和非聚簇索引的区别
MySQL主从同步如何实现
MVCC有什么作用
数据库组合索引,最左匹配原则,组合索引B,C,D查询D,where条件使用B是否会回表
Redis
Redis单线程为何能支撑高并发
Redis string和zset的实现
Redis I/O多路复用如何实现
Kafka
Kafka数据索引如何实现
Kafka如何保证高可用
设计题
设计一个FIFO 队列的数据结构(数据类型为整数),有三种操作:push(往队列末位插入一个
整数),pop(从队列前面获取一个整数),getMax(查询队列里面最大的整数)
设计一个朋友圈点赞功能的数据表(不限于MySQL,Redis等)
算法
给你一个n * m的二维整数数组,数字都是大于等于0,现在要你对数组做一种操作,对于
所有0,将0所在的行和列全部变为0。要求使用尽量少的空间和时间。
给你一个整数数组,数组中的元素定义一种距离d[i]为将数组排序后,该元素移动的距离,
现在给你一个K数组,即数组中所有元素的距离d <= k,对这个K数组排序,希望尽量小的