JavaScript 小于当前数的数字

JavaScript 小于当前数的数字

在给定的问题陈述中,我们需要使用 JavaScript 找到小于当前数的数字。为了完成这个任务,我们将跟踪项目,并将当前数递减一来获得所需的结果。

理解问题陈述

该问题要求编写一个函数,该函数将一个整数数组作为输入,并返回相同长度的数组,其中每个元素表示给定数组中小于对应项目的数字的计数。例如,如果我们有一个数组[5, 4, 3, 2, 1],则输出应该是[4, 3, 2, 1, 0]。

为了解决这个问题,我们将遍历给定的数组,并将每个项目与数组中的所有其他项目进行比较,以获取小于当前项目的计数。

上述问题的逻辑

基本上,我们将使用 reduce 和 filter 方法来迭代给定的输入数组,并生成一个新的数组,其中每个项目的小于其的数字的计数。Javascript 的 reduce 方法将接受两个参数。在函数内部,我们将使用 Javascript 的 filter 方法来获取具有小于当前数字的所有其他项目的新数组。然后,我们将获得其长度以获取较小数字的计数。然后将计数的值推送到结果数组,并返回更新后的数组以进行下一次迭代。

算法

步骤 1 - 通过定义整数数组来启动程序。

步骤 2 - 现在定义一个函数,以获得小于当前数的数字。

步骤 3 - 使用 reduce 方法启动回调函数作为res和结果数组的初始值。

步骤 4 - 在函数内部,使用 filter 方法定义一个新数组来存储给定数组的所有小于当前数字的数字。然后,我们将获得较小数字的长度。

步骤 5 - 将计数的值推送到结果数组,并返回更新后的res数组以进行下一次遍历。

算法的代码实现

const arr = [5, 4, 3, 2, 1];

//function to get the smaller number of current number
const smallerThanCurrent = (arr = []) => {
   return arr.reduce((res, num, i) => {
      const count = arr.filter(otherNum => otherNum < num).length;
      res.push(count);
      return res;
   }, []);
};
console.log(smallerThanCurrent(arr));

复杂度

上述方法使用了Javascript的reduce和filter方法,时间复杂度为O(n^2)。reduce方法用于实现更函数式的编程方法。

结论

我们已经实现了一个解决给定问题的解决方案,以找到数组中小于当前数字的数量。但对于大型数组,程序的时间复杂度并不高效,我们可能需要使用比这个程序更有效的方式。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程