求大佬分享!
1 1

相关推荐

1. 拷打项目2. 场景题:10000个测试用例,但是由于时间关系只能做1000个,要怎么筛选测试用例?答:正交分解,问怎么正交分解,扯了一大堆传统正交分解的做法,面试官看不下去了,说他们希望引入大模型来自动化筛选测试用例(不是,你不说我咋知道你想要这个方面的答案,这个时候我脑子还留在传统测开层面,在这之前完全没有聊到大模型)于是我说引入强化学习打分机制,来评估测试用例是否具有高优先级。3. AI对自动化的影响答自动生成测试样例,通过CV进行UI测试,减少人力物力等等。追问:在UI测试中有什么风险答:不可靠,尤其是在有动画、音频组件时无法正确识别4. 看到你项目有用CICD,聊一下你的看法追问:CI和CD的分界线在哪?答:交付产品是发行版还是内测版(纯乱答的)追问:CI和CD英文名是啥?中文名是啥consistent integration,consistent deployment(答错了,但是面试官问了一句consistent有持续性的意思吗,虽然我现在知道标答是continuous,但是consistent确实有持续这层含义,本人托福103)5. 知道哪些数据结构?队列使用场景是什么?答:BFS,消息队列(感觉给的太具体了,面试官好像是想听一种通用的使用场景)6. 知道哪些测试方法?集成测试测的什么?7. 排查数据库(mysql)查询速度缓慢的步骤。8. 手撕:一个所有值都唯一的链表,给定两个值,反转这两个值之间的所有node就给了几分钟,还没有测试用例,没有输入输出样式,没有函数定义,啥都没有,写了个递归框架,边际条件都没处理,讲讲思路就结束了。完全是懵的一场面试,本来准备了很久的llm相关八股一点没问,问测开的时候又想要我回答llm相关的知识,完全不知道面试官想要我回答哪一方面的内容,搁这对我做黑盒测试呢
点赞 评论 收藏
分享
import java.util.*;import java.io.*;public class Main {// 并查集:父节点映射 + 秩映射(按秩合并用)public static HashMap<Integer, Integer> parent = new HashMap<>();// 查找(路径压缩 + 自动初始化节点)public static int find(int x) {// 节点不存在则初始化:父节点是自己,秩为1parent.putIfAbsent(x, x);// 路径压缩(迭代版,避免递归栈溢出)while (!parent.get(x).equals(x)) {parent.put(x, parent.get(parent.get(x))); // 父节点指向祖父节点x = parent.get(x);}return x;}// 合并(按秩合并 + 路径压缩)public static void merge(int x, int y) {int rootX = find(x);int rootY = find(y);if (rootX == rootY) return;// 按秩合并:将秩小的树合并到秩大的树parent.put(rootY, rootX);}// 生成统一的边key(避免{a,b}和{b,a}重复)static String getRelationKey(int a, int b) {return a < b ? a + "," + b : b + "," + a;}public static void main(String[] args) throws IOException {// 替换Scanner为BufferedReader,提升输入效率BufferedReader br = new BufferedReader(new InputStreamReader(System.in));String[] parts = br.readLine().split(" ");int n = Integer.parseInt(parts[0]);int m = Integer.parseInt(parts[1]);int q = Integer.parseInt(parts[2]);// 存储原始边Set<String> edges = new HashSet<>();for (int i = 0; i < m; ++i) {parts = br.readLine().split(" ");int a = Integer.parseInt(parts[0]);int b = Integer.parseInt(parts[1]);edges.add(getRelationKey(a, b));}// 存储有效操作(过滤无效删除)ArrayList<int[]> ops = new ArrayList<>();for (int i = 0; i < q; ++i) {parts = br.readLine().split(" ");int op = Integer.parseInt(parts[0]);int a = Integer.parseInt(parts[1]);int b = Integer.parseInt(parts[2]);if (op == 1) {String key = getRelationKey(a, b);if (edges.contains(key)) {edges.remove(key);ops.add(new int[]{op, a, b});}} else {ops.add(new int[]{op, a, b});}}// 初始化:合并所有未被删除的边(最终状态)for (String key : edges) {String[] nodes = key.split(",");int a = Integer.parseInt(nodes[0]);int b = Integer.parseInt(nodes[1]);merge(a, b);}// 倒序处理操作,记录答案List<Boolean> answers = new ArrayList<>();for (int i = ops.size() - 1; i >= 0; i--) {int[] op = ops.get(i);if (op[0] == 1) {// 原删除操作 → 逆操作:合并merge(op[1], op[2]);} else {// 原查询操作:判断是否连通boolean connected = find(op[1]) == find(op[2]);answers.add(connected);}}// 逆序输出答案for (int i = answers.size() - 1; i >= 0; --i) {System.out.println(answers.get(i) ? "Yes" : "No");}}}
投递美团等公司10个岗位
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务