本文共 2711 字,大约阅读时间需要 9 分钟。
为了解决这个问题,我们需要找到两个班级成绩的最长公共子序列,并按照特定规则输出。以下是详细的解决思路和实现步骤:
步骤 1:读取输入并处理
读取输入,获取两个班级的成绩。 对两个班级的成绩进行排序,按降序排列。 去重处理,将每个班级的成绩转换为唯一的降序数组。 步骤 2:去重处理
- 遍历成绩数组,记录出现过的成绩,并跳过重复的。
- 生成两个去重后的数组,每个数组中的元素按降序排列。
步骤 3:寻找最长公共子序列
- 使用暴力枚举的方法,寻找两个数组中的最长公共子序列。
- 遍历每个可能的起始点,检查是否存在一个匹配的子序列。
- 记录最长的子序列及其具体数字。
步骤 4:排序输出
- 将最长公共子序列的数字按个位递增排序。
- 如果个位相同,按整体数字递增排序。
步骤 5:输出结果
代码实现
#include #include #include #include #include
代码解释
去重和排序:uniqueAndSort 函数用于去重并按降序排列数组。 检查公共子序列:hasCommonSubsequence 函数检查两个数组是否有长度为 len 的公共子序列。 寻找最长公共子序列:findLCS 函数通过暴力枚举找到最长公共子序列,并记录其数字和个位数字。 输出处理:将最长公共子序列排序后,按照要求输出结果。 通过以上步骤,我们可以高效地解决问题并输出符合要求的结果。
转载地址:http://fbxfk.baihongyu.com/