华为机试 - 金字塔
admin
2024-02-18 07:27:08
0

目录

题目描述

输入描述

输出描述

用例

题目解析

算法源码


题目描述

微商模式比较典型,下级每赚 100 元就要上交 15 元,给出每个级别的收入,求出金字塔尖上的人收入。

输入描述

比如:

(代理商代号) (上级代理商代号) (代理商赚的钱)

1 0 223
2 0 323
3 2 1203

输出描述

0(金字塔顶代理商)

105 (最终的钱数)

解释:

2的最终收入等于323 + 1203/100*15=323 + 180

0的最终收入等于(323 + 180 + 223)/ 100 * 15 = 105

用例

输入1 0 223
2 0 323
3 2 1203
输出

0

105

说明

题目解析

这道题看上去平平无奇,但是实际操作起来却有点无从下口。

首先,从用例来看,上下级关系,不是连续,比如2的上级不是1,而是0。

因此,我们需要用到输入中的上下级关系。

我的解题思路如下:

将每行输入转为一个数组,数组包含三个要素:[本级id,上级id,本级收入],这样就会得到一个二维数组。

然后对二维数组排序,按照上级id进行降序(因为0是最高级)。

定义一个agent数组,agent[i]代表第i级的收入。

遍历二维数组,根据遍历得到的一维数组:[本级id,上级id,本级收入]

可以得到 agent[上级id] += 本级收入 / 100 * 15,

但是此时 agent[上级id] 可能并未初始化,因此我们需要判断是否需要初始化。

另外,我们还需要注意,遍历到第二个一维数组时,agent[本级id]可能有了下级上交的收入,因此:本级收入 += agent[本级id],当然前提是agent[本级id]有值。

最终我们就可以通过agent[0]获取到金字塔顶级代理的收入了。

算法源码

/* JavaScript Node ACM模式 控制台输入获取 */
const readline = require("readline");const rl = readline.createInterface({input: process.stdin,output: process.stdout,
});const lines = [];
rl.on("line", (line) => {if (line === "") {const arr = lines.map((line) => line.split(" ").map(Number));console.log(0)console.log(getResult(arr));lines.length = 0;} else {lines.push(line);}
});function getResult(arr) {const agent = {};arr.sort((a, b) => b[1] - a[1]).forEach((ele) => {let [id, preId, money] = ele;if (agent[id]) money += agent[id];if (!agent[preId]) agent[preId] = 0;agent[preId] += Math.floor(money / 100) * 15;});return agent[0];
}

相关内容

热门资讯

mp3安卓系统前端 你有没有想过,为什么你的手机里那么多音乐,却总是觉得听不到那种纯粹的音乐体验呢?其实,这跟你的手机系...
华为安卓系统苹果ios系统升级 你知道吗?最近手机圈可是热闹非凡呢!华为和苹果这两大巨头又来了一场关于系统升级的较量。今天,就让我带...
安卓系统映射电脑显示,畅享多屏... 你是不是也和我一样,对安卓系统映射电脑显示这个功能充满了好奇?想象你的手机屏幕瞬间变成电脑显示器,是...
tf卡上安装安卓系统,便携式智... 你有没有想过,你的TF卡上也能装个安卓系统?听起来是不是有点不可思议?别急,让我带你一步步探索这个神...
安卓9更新鸿蒙系统卡,鸿蒙系统... 最近你的安卓手机是不是也遇到了卡顿的问题呢?尤其是更新到了安卓9系统后,感觉手机就像老牛拉车一样,慢...
安卓系统wifi热点怎么开 你是不是也和我一样,有时候手机里突然冒出一个想法:“我能不能把手机变成一个WiFi热点呢?”别急,这...
安卓系统照片编辑抠图,释放创意... 你有没有发现,手机里的照片有时候就是需要一点小魔法,才能变得完美无瑕呢?比如说,你想要把照片里的人物...
三星安卓系统和鸿蒙系统,技术融... 亲爱的读者们,今天我们要来聊聊两个在智能手机界颇具影响力的操作系统——三星的安卓系统和华为的鸿蒙系统...
本田车机加装安卓系统,畅享智能... 你有没有想过,你的本田车机其实可以变得更加智能和好玩呢?没错,就是那个平时默默无闻的车载系统,今天就...
安卓系统电源文件在哪,安卓系统... 你有没有遇到过手机电量突然告急,却怎么也找不到电源文件的尴尬时刻?别急,今天就来给你揭秘安卓系统电源...
安卓系统华为平板推荐吗,安卓系... 你最近是不是在考虑入手一款新的平板电脑呢?市面上那么多品牌,各种型号让人眼花缭乱。今天,就让我来给你...
怎么查出手机安卓系统,一探究竟 你有没有想过,你的手机里藏着多少秘密?别担心,我不是要吓你,而是想告诉你,了解自己手机的安卓系统,其...
安卓系统是不是很垃圾,是“垃圾... 最近在网络上看到一个话题,让人忍不住想聊聊:安卓系统是不是很垃圾?这可是个热门话题,毕竟现在手机市场...
公交站牌安卓系统,安卓系统下的... 你有没有发现,最近公交站牌变得不一样了?没错,就是那个我们每天上下班必经的地方,现在竟然悄悄地升级换...
安卓模拟器装系统,轻松打造个性... 你有没有想过,在电脑上也能玩安卓游戏或者使用安卓应用?这可不是天方夜谭,而是可以通过安卓模拟器实现的...
安卓系统变成汉语怎么变,从英语... 你知道吗?安卓系统,这个全球最流行的手机操作系统,最近可是悄悄地来了一场大变身呢!它不仅变得更加智能...
安卓为什么难用鸿蒙系统,探寻其... 你有没有发现,最近手机圈里有个大热门话题,那就是安卓和鸿蒙系统的较量。很多人都在问,为什么安卓手机那...
emui是安卓系统还是鸿蒙系统... 哦,亲爱的读者,你是否曾在手机界面的角落里,瞥见那个独特的EMUI字样,心中不禁好奇:这EMUI,究...
安卓系统能用联通卡吗 你有没有想过,你的安卓手机能不能用联通的卡呢?这个问题,估计不少手机用户都好奇过吧!今天,就让我来给...
王者荣耀安卓系统改变,畅享指尖... 你知道吗?最近王者荣耀在安卓系统上可是来了一场大变身呢!这可不仅仅是界面上的小改动,而是从内到外都焕...