【算法题】开源项目热度榜单(js)





解法

js 复制代码
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

 */
相关推荐
Bear on Toilet26 分钟前
递归_二叉树_50 . 从前序与中序遍历序列构造二叉树
数据结构·算法·leetcode·深度优先·递归
plus4s28 分钟前
2月18日(82-84题)
c++·算法·动态规划
wangluoqi1 小时前
c++ 树上问题 小总结
开发语言·c++
艾醒2 小时前
打破信息差——2026年2月19日AI热点新闻速览
算法
Go_Zezhou2 小时前
pnpm下载后无法识别的问题及解决方法
开发语言·node.js
前路不黑暗@2 小时前
Java项目:Java脚手架项目的 C 端用户服务(十五)
java·开发语言·spring boot·学习·spring cloud·maven·mybatis
一个处女座的程序猿O(∩_∩)O2 小时前
Python异常处理完全指南:KeyError、TypeError、ValueError深度解析
开发语言·python
好学且牛逼的马3 小时前
从“Oak”到“虚拟线程”:JDK 1.0到25演进全记录与核心知识点详解a
java·开发语言·python
追随者永远是胜利者3 小时前
(LeetCode-Hot100)62. 不同路径
java·算法·leetcode·职场和发展·go
追随者永远是胜利者3 小时前
(LeetCode-Hot100)56. 合并区间
java·算法·leetcode·职场和发展·go