华为OD机试真题 Java 实现【静态代码扫描服务】【2023Q1 100分】

在这里插入图片描述

一、题目描述

静态扫描快速识别源代码的缺陷,静态扫描的结果以扫描报告作为输出:

  1. 文件扫描的成本和文件大小相关,如果文件大小为N,则扫描成本为N个金币;
  2. 扫描报告的缓存成本和文件大小无关,每缓存一个报告需要M个金币;
  3. 扫描报告缓存后,后继再碰到该文件则不需要扫描成本,直接获取缓存结果

给出源代码文件标识序列和文件大小序列,求解采用合理的缓存策略,最少需要的金币数。

二、输入描述

第一行为缓存一个报告金币数M,1<=M<=100
第二行为文件标识序列: F1,F2,F3…Fn,其中 1<=N<=10000, 1<=Fi<=1000
第三行为文件大小序列: s1,s2,s3…sn,其中 1<=N<=10000, 1<=Si<=10

三、输出描述

采用合理的缓存策略,需要的最少金币数。

四、解题思路

  1. 首先读取输入的缓存一个报告金币数 M;
  2. 使用 nextLine() 方法分别读取文件标识序列和文件大小序列,并将它们分别存储在字符串数组 arr1 和 arr2 中;
  3. 创建一个 Map 来存储文件标识和对应的

你可能感兴趣的:(java,华为,开发语言,算法,面试)