首先是自我介绍,我按照原来的简历做了介绍,但是面试官一直在强调想听模型,不想听业务流程,其实一直没有搞懂他口中的流程和模型的区别,说了用领域开发的那一套介绍的,先介绍领域里面的核心概念,再介绍流程,后面改了风格,面试官夸说现在对了。
拷打项目-提报系统
- 面试官问这些模型里面哪个你最了解?我说了卡控因子。
- 问:为什么要设置展位,展位跟投放单有什么区别?
- 问:为什么这个卡控不全让算法来做?你们还要做一次卡控?
八股
- 问:java反射的原理?本来想扩展Spring里面的发射,被强制会主线
- 问:mysql中的分页offset和limit,这个sql怎么操作的?面试官强调要具体到每一步的存储(在内存还是磁盘)
- 问:你知道CAP吗?一时间没反应过来
算法题
5min 秒了
import java.util.Arrays;
import java.util.HashSet;
public class PokerHandEvaluator {
public static void main(String[] args) {
int[] hand1 = {2, 5, 4, 6, 7, 8, 10}; // 示例手牌
System.out.println(judge(hand1)); // 应该输出 true
int[] hand2 = {0, 4, 6, 8, 9, 11, 3};
System.out.println(judge(hand2)); // 应该输出 false
}
public static boolean judge(int[] input) {
// 由于牌的表示从 0 到 51,我们使用 HashSet 来去除重复的牌
HashSet<Integer> de = new HashSet<>();
for (int i = 0; i < input.length; i++) {
// 由于题目要求用 0-51 表示牌,这里直接添加牌的值
input[i] = input[i] % 13;
de.add(input[i]);
}
Integer[] ans = de.toArray(new Integer[0]);
// 对牌进行排序
Arrays.sort(ans);
// 检查是否存在连续的 5 张牌
for (int i = 0; i <= ans.length - 5; i++) {
if (ans[i + 4] - ans[i] == 4) {
// 找到了连续的 5 张牌
return true;
}
}
// 没有找到连续的 5 张牌
return false;
}
}
面试官继续问,如果不用 Arrays.sort(ans);
你怎么办?
反问:
- 字节跳动国际电商营销的开发内容(跟美团的基本一样)
- 工作的时间