首页 > shopee 新加坡 一面二面三面面经(后端研发,已意向书)
头像
zzzzzzllll
编辑于 2020-10-12 19:32
+ 关注

shopee 新加坡 一面二面三面面经(后端研发,已意向书)

shopee

shopee一面

  1. 代码:n个有序的数组合并

    (每个数组有m个值 ,时间复杂度:n * m logn, 可用堆 / 归并)

  2. n个有序的数组合并 + 去重

  3. 代码题:判断一个树是不是二叉搜索树,空间复杂度要 O(1)

  4. Redis 中数据结构,什么场景需要使用 hash; 数据倾斜怎么办(某台服务器数据太多了)

  5. LRU怎么实现

  6. 怎么实现HashMap

  7. HashMap 和 数组的区别 (利用哈希函数,快速的得到对应的值在数组的位置,这也是利用了数组随机访问的特性)

  8. 数据库索引是用来干嘛

  9. Primary Key

  10. 聚簇索引, 非聚簇索引, 查找和插入的区别

  11. MySQL如何加锁的详细流程:

    -----------------------------------
    
        name      |     age
    
    -----------------------------------
    
    name : unique key
    
    
    
select * from table where name = "James" for update

有这一条数据怎么加锁

没有这一条数据怎么加锁

```
  1. MySQL如何解锁死锁

  2. MySQL回滚什么事务

  3. MySQL如何保证同时成功,同时失败

  4. TCP断开连接是怎么做的

shopee 二面

  1. 项目介绍

  2. 挖项目(记录回答的不好的)

    1. cookie用了UUID,能不能把cookie做的更短一点,UUID有没有必要(随机性有没有必要)。

    2. 恶意用户绕过答题功能怎么办 (在后端做标记,需要答题后才能继续执行后面的流程)

    3. 修改Redis中的值用不用限流,因为Redis可能也会打死

    4. 进入MQ前没有返回信息,不就成了同步?

  3. 算法题:

     Given a non-negative integer num represented as a string, remove k digits from the number so that the new number is the smallest possible.
    
     Input: num = "1432219", k = 3
    
     Output: "1219"
    
     Explanation: Remove the three digits 4, 3, and 2 to form the new number 1219 which is the smallest.
    • 一开始用了滑动窗口做,但是时间复杂度不是很优

    • 后面用栈写

  1. 进程和线程的区别,为什么进程的创建销毁比线程开销小?

  2. 一个程序需要用多核来加速执行,使用线程和进程的优劣? 进程和线程使用上的区别?线程共享进程的什么资源,详细点?资源共享?

shopee三面

  1. 项目里有多少个表

  2. 事务怎么处理的

  3. 怎么保证Redis和数据库内存是一致的。 多买 少买

  4. redis和数据库 数据同步问题。

  5. redis挂掉了怎么办? 主从复制,哨兵模式

  6. 令牌桶的原理。和漏桶相比,有什么好处

  7. Java的垃圾回收机制

  8. 如果程序发生 stop the world, 怎么解决? (看GC log 、内存大小、垃圾收集器)

  9. 算法题:找中位数。

  10. 堆排序的工作原理。 快排和堆排相比。 快排为什么比堆排快

  11. 场景题:设计shop系统

  12. char 和 varchar 区别

  13. 分库分表

  14. 雪花算法、主键自不自增

  15. 分布式限流

shopee HR面

(很漂亮的HR小姐姐)

问了很平常的问题。 (家人允不允许去新加坡之类的)

更多模拟面试

全部评论

(10) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

热门推荐