华为OD机试统一考试D卷C卷 - 测试用例执行计划

题目描述

某个产品当前迭代周期内有 N 个特性(F1,F2,......FN)需要进行覆盖测试,每个特性都被评估了对应的优先级,特性使用其 ID 作为下标进行标识。

设计了 M 个测试用例(T1,T2,......,TM),每个测试用例对应一个覆盖特性的集合,测试用例使用其 ID 作为下标进行标识,测试用例的优先级定义为其覆盖的特性的优先级之和。

在开展测试之前,需要制定测试用例的执行顺序,规则为:优先级大的用例先执行,如果存在优先级相同的用例,用例 ID 小的先执行。

输入描述

第一行输入为 N 和 M,

  • N 表示特性的数量,0 < N ≤ 100
  • M 表示测试用例的数量,0 < M ≤ 100

之后 N 行表示特性 ID=1 到特性 ID=N 的优先级,

再接下来 M 行表示测试用例 ID=1 到测试用例 ID=M 关联的特性的 ID 的列表。

输出描述

按照执行顺序(优先级从大到小)输出测试用例的 ID,每行一个ID。

测试用例覆盖的 ID 不重复。

用例1

输入

5 4
1
1
2
3
5
1 2 3
1 4
3 4 5
2 3 4

输出

3
4
1
2

说明

测试用例的优先级计算如下:

T1 = Pf1 + Pf2 + Pf3 = 1 + 1 + 2 = 4T2 = Pf1 + Pf4 = 1 + 3 = 4T3 = Pf3 + Pf4 + Pf5 = 2 + 3 + 5 = 10T4 = Pf2 + Pf3 + Pf4 = 1 + 2 + 3 = 6

按照优先级从小到大,以及相同优先级,ID小的先执行的规则,执行顺序为T3,T4,T1,T2

Java

import java.util.*;

public class Main{
    // 内部类:表示测试用例,包含ID和优先级
    static class TestCase {
        int id; // 测试用例的ID
        int priority; // 测试用例的优先级

        TestCase(int id, int priority) {
            this.id = id; // 设置测试用例ID
            this.priority = priority; // 设置测试用例优先级
        }
    }
    public static void main(

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

华为OD机试刷题 文章被收录于专栏

华为OD机试刷题记录机考算法题库,帮助你上岸华为。提供C++/Java、JavaScript、Python四种语言的解法。

全部评论

相关推荐

点赞 1 评论
分享
牛客网
牛客企业服务