【算法题】开源项目热度榜单(js)
2023-12-14 21:00:32
解法
const lines = [
"4",
"8 6 2 8 6",
"camila 66 70 46 158 80",
"victoria 94 76 86 189 211",
"athony 29 17 83 21 48",
"emily 53 97 1 19 218",
];
const lines2 = [
"5",
"5 6 6 1 2",
"camila 13 88 46 26 169",
"grace 64 38 87 23 103",
"lucas 91 79 98 154 79",
"leo 29 27 36 43 178",
"ava 29 27 36 43 178",
];
function solution(lines) {
const personNum = parseInt(lines[0]);
const weights = lines[1].split(" ").map((item) => parseInt(item));
const projects = [];
function countHot(weights, list) {
console.log(weights, list);
let sum = 0;
for (let j = 0; j < weights.length; j++) {
sum += weights[j] * list[j];
}
return sum;
}
for (let i = 2; i < 2 + personNum; i++) {
const arr = lines[i].split(" ");
const name = arr.shift();
const list = arr.map((item) => parseInt(item));
const hot = countHot(weights, list);
projects.push({
name,
list,
hot,
});
}
console.log("projects", projects);
const results = projects.sort((a, b) =>
a.hot !== b.hot ? b.hot - a.hot : a.name.localeCompare(b.name)
);
console.log("results", results);
return results.map((item) => item.name).join("\n");
}
console.log(solution(lines2));
/*
"4",
"8 6 2 8 6",
"camila 66 70 46 158 80",
"victoria 94 76 86 189 211",
"athony 29 17 83 21 48",
"emily 53 97 1 19 218",
=>
victoria
camila
emily
athony
"5",
"5 6 6 1 2",
"camila 13 88 46 26 169",
"grace 64 38 87 23 103",
"lucas 91 79 98 154 79",
"leo 29 27 36 43 178",
"ava 29 27 36 43 178",
=>
lucas
grace
camila
ava
leo
*/
文章来源:https://blog.csdn.net/qq_43682422/article/details/134967958
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!