去哪儿网java工程师现场面经
去哪儿网
java
- Redis Cluster 是如何进行扩容的?
- static类型、final类型
- 网络模型有哪些 分别有哪些协议?
- 抽象类和接口有什么区别?接口是用来做什么的?一组功能的集合
- 线程的程序计数器是干什么用的?
- 线程池参数,什么情况下会达到最大线程数
- 如何设计单点登录,单点登录的原理
- 快速排序和归并排序时间复杂度都一样,为什么要用快速排序
- 设计一个短链接生成系统?数据如何存储?高并发如何处理?
- 堆溢出?栈溢出?
- MySQL的索引,为什么是B+而不是平衡二叉树
- ArrayList和LinkedList区别,底层是怎么实现的;
- 怎么保证促销商品不会超卖?
- 同步IO和异步IO的区别?
- 主键索引和普通索引
- 在栈上为什么不能用变量做数组的长度,堆上可以吗?
- MySQL的ACID讲一下,延伸到隔离级别
- 假如你是技术组长? 如何提高团队效率?
- 简单说一下堆和栈的区别?
编程题
Alice 有 n 枚糖,其中第 i 枚糖的类型为 candyType[i] 。Alice 注意到她的体重正在增长,所以前去拜访了一位医生。
医生建议 Alice 要少摄入糖分,只吃掉她所有糖的 n / 2 即可(n 是一个偶数)。Alice 非常喜欢这些糖,她想要在遵循医生建议的情况下,尽可能吃到最多不同种类的糖。
给你一个长度为 n 的整数数组 candyType ,返回: Alice 在仅吃掉 n / 2 枚糖的情况下,可以吃到糖的最多种类数。
示例 1:
输入:candyType = [1,1,2,2,3,3] 输出:3 解释:Alice 只能吃 6 / 2 = 3 枚糖,由于只有 3 种糖,她可以每种吃一枚。
示例 2:
输入:candyType = [1,1,2,3] 输出:2 解释:Alice 只能吃 4 / 2 = 2 枚糖,不管她选择吃的种类是 [1,2]、[1,3] 还是 [2,3],她只能吃到两种不同类的糖。
示例 3:
输入:candyType = [6,6,6,6] 输出:1 解释:Alice 只能吃 4 / 2 = 2 枚糖,尽管她能吃 2 枚,但只能吃到 1 种糖。