2 Star 1 Fork 0

royce li/Leetcode_royce

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
countHighestScoreNodes.js 1.12 KB
一键复制 编辑 原始数据 按行查看 历史
royce li 提交于 2022-03-11 20:38 . 相信未来
/**
* @param {number[]} parents
* @return {number}
*/
var countHighestScoreNodes = function(parents) {
const nodes = parents.map(p => ({ val: 1 }));
parents.slice(1, parents.length).forEach((p, i) => {
if(nodes[p].left) {
nodes[p].right = nodes[i + 1];
} else {
nodes[p].left = nodes[i + 1];
}
});
const calc = (node) => {
if(node.left) {
node.val += calc(node.left);
}
if(node.right) {
node.val += calc(node.right);
}
return node.val;
};
calc(nodes[0]);
let max = 0;
let cnt = 0;
const traverse = (node) => {
if(!node) {
return;
}
let val = 1;
if(node.left) {
val *= node.left.val;
}
if(node.right) {
val *= node.right.val;
}
if(nodes[0].val - node.val > 0) {
val *= (nodes[0].val - node.val);
}
// console.log(val);
if(val === max) {
cnt ++;
} else if (val > max) {
cnt = 1;
max = val;
}
traverse(node.left);
traverse(node.right);
}
traverse(nodes[0]);
return cnt;
};
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/royce-li/leetcode_royce.git
git@gitee.com:royce-li/leetcode_royce.git
royce-li
leetcode_royce
Leetcode_royce
master

搜索帮助