在 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
广告