静态扫描快速识别源代码的缺陷,静态扫描的结果以扫描报告作为输出:
给出源代码文件标识序列和文件大小序列,求解采用合理的缓存策略,最少需要的金币数。
第一行为缓存一个报告金币数M,1<=M<=100
第二行为文件标识序列: F1,F2,F3…Fn,其中 1<=N<=10000, 1<=Fi<=1000
第三行为文件大小序列: s1,s2,s3…sn,其中 1<=N<=10000, 1<=Si<=10
采用合理的缓存策略,需要的最少金币数。
function minimumCoins(M, input1, input2) {
const fileIdentifiers = input1.split(" ")
const fileSizes = input2.split(" ")
const map = new Map();
for (let i = 0; i < fileIdentifiers.length; i++) {
const key = parseInt(fileIdentifiers[i]);
const coin = parseInt(fileSizes[i]);
if (map.has(key)) {
const arr = map.get(key);
arr[0] += coin;
arr[1]++;
} else {
map.set(key, [coin, 1]);
}
}
let sum = 0;
for (const [key, [coin, count]] of map.entries()) {
const temp1 = coin * count;
const temp2 = coin + M;
const val = Math.min(temp1, temp2);
sum += val;
}
return sum;
}
5
1 2 2 1 2 3 4
1 1 1 1 1 1 1
7
下一篇:华为OD机试真题 JavaScript 实现【相对开音节】【2022Q4 100分】,附详细解题思路
本文收录于,华为OD机试(JavaScript)真题(A卷+B卷)
每一题都有详细的答题思路、详细的代码注释、样例测试,订阅后,专栏内的文章都可看,可加入华为OD刷题群(私信即可),发现新题目,随时更新,全天CSDN在线答疑。