HackerRank:正负数比例的JavaScript解决方案

HackerRank:正负数比例的JavaScript解决方案

💡 原文英文,约900词,阅读约需4分钟。
📝

内容提要

给定一个整数数组,计算正数、负数和零的比例,并以六位小数格式输出。例如,对于数组[-4, 3, -9, 0, 4, 1],结果为:0.500000、0.333333和0.166667。通过遍历数组进行分类计数,最后计算比例并打印。

🔎

延伸解读

精度问题的注意事项

在计算正数、负数和零的比例时,精度是一个重要因素。虽然题目要求结果保留六位小数,但允许的绝对误差可达到10^-4。因此,在实现时需确保计算过程中的精度,以避免因浮点数运算导致的误差。

时间复杂度分析

该解决方案的时间复杂度为O(n),意味着随着输入数组大小的增加,计算时间将线性增长。这使得该算法在处理较大数据集时仍然高效,适合在实际应用中使用。

使用Math.sign()的优势

使用Math.sign()方法可以简化对数字符号的判断,提升代码的可读性和简洁性。通过该方法,可以快速分类正数、负数和零,避免了使用复杂的条件语句,从而提高了代码的执行效率。

Q&A

如何计算数组中正数、负数和零的比例?

通过遍历数组,分类计数正数、负数和零的数量,然后将每个类别的计数除以数组的总长度,最后打印结果。

输出比例时需要注意什么格式?

输出比例时需要以六位小数格式显示,每个比例占一行。

给定数组[-4, 3, -9, 0, 4, 1],正负数和零的比例是多少?

正数比例为0.500000,负数比例为0.333333,零的比例为0.166667。

如何使用JavaScript实现这个比例计算?

可以使用一个对象存储每个类别的计数,利用Math.sign()方法分类,然后计算比例并格式化为六位小数。

这个解决方案的时间复杂度是多少?

解决方案的时间复杂度为O(n),即线性复杂度。

输入数组的格式要求是什么?

输入格式包括数组的大小和数组元素,数组大小n应满足0 < n <= 100,元素范围为-100到100。

🏷️

标签

➡️

继续阅读