我针对此问题的代码适用于8/9测试用例。但我不知道为什么在最后一种情况下它不起作用。
function birthdayCakeCandles(ar) {
const candleHeights = {};
for (let i = 0; i < ar.length; i++) {
if (candleHeights[ar[i]]) {
candleHeights[ar[i]]++;
} else {
candleHeights[ar[i]] = 1;
}
}
let tallestCandle = 0;
let candleCount;
for (let [key, value] of Object.entries(candleHeights)) {
if (key > tallestCandle){
tallestCandle = key;
candleCount = value;
}
}
return candleCount;
}
问题:
您负责侄女的生日蛋糕,并决定该蛋糕在她总年龄的每一年中都会有一支蜡烛。当她吹灭蜡烛时,她只能吹出最高的蜡烛。您的任务是找出她可以成功吹灭多少根蜡烛。
例如,如果您的外女快岁了,并且蛋糕上的蜡烛高度为,,,,那么她将能够成功吹灭蜡烛,因为最高的蜡烛高度很高,并且有这样的蜡烛。 / p>
功能说明
在下面的编辑器中完成功能
birthdayCakeCandles
。它必须返回一个整数,代表她可以吹灭的蜡烛数量。
birthdayCakeCandles
具有以下参数:
ar
:代表蜡烛高度的整数数组 输入格式第一行包含一个整数,表示蛋糕上蜡烛的数量。 第二行包含以空格分隔的整数,其中每个整数描述了Candle的高度。
输出格式
返回在新行中可以吹灭的蜡烛数。
样本输入
4 3 2 1 3
样本输出
2
说明
我们有一根高度的蜡烛,一根高度的蜡烛,和两根高度的蜡烛。你的侄女只吹出最高的蜡烛,这意味着蜡烛在哪里。因为有这样的蜡烛,所以我们在新行上打印。
失败的测试用例如下:
输入(stdin)
100000
1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 10{-truncated-}
预期产量
99999
数组中除1之外的所有数字都是1000和一个999。
我不确定为什么会失败,可能是制约因素。
答案 0 :(得分:0)
这是我的第一次尝试,我认为这是最好的,因为它看起来很酷,但是在某些测试用例上失败了:
libsndfile1
然后我尝试了此方法,并通过了所有测试用例:
function birthdayCakeCandles(candles) {
return candles.filter(n => n === Math.max(...candles)).length;
}