在 JavaScript 中查找使数组元素相等的最小步骤


我们需要编写一个 JavaScript 函数,其只接受一个数字 num 作为唯一的参数。该函数应首先根据以下规则构建一个包含 n 个元素的数组 -

arr[i] = (2 * i) + 1;

因此,如果输入数字为 5,则数组应为 -

const arr = [1, 3, 5, 7, 9];

我们的函数应该计算并返回数组所有元素相等所需的最小步骤数。

现在让我们来定义一步 -

一个有效的步骤包括从数组中选择任意两个数字(不同的数字),并把第一个数字加 1,第二个数字减 1。

因此,对于上述数组,输出应如下所示 -

const output = 6;

示例

该代码如下 -

 实时演示

const num = 5;
const minimumOperations = (num = 1) => {
   if(num === 1){
      return 0;
   };
   let arr = new Array(num);
   let i = 0;
   let res = 0;
   while(i < num){
      arr[i] = (2 * i) + 1;
      if(arr[i] < num) res += num-arr[i];
      i++;
   };
   return res;
};
console.log(minimumOperations(num));

输出

控制台中的输出如下 -

6

更新于: 2021-2-26

219 次浏览

开启您的 事业

通过完成课程获得认证

马上开始
广告