在 JavaScript 中创建唯一数组
问题
我们需要编写一个 JavaScript 函数,该函数接受一个数字数组 (arr) 作为第一个且唯一的参数。
移动包括选择任何 arr[i] 并将其递增 1。我们的函数应返回让数组 arr 中的每个值都唯一所需的移动次数最少。
例如,如果函数输入 −
const arr = [12, 15, 7, 15];
则输出应该是 −
const output = 1;
输出说明
因为如果我们将 15 递增为 16,数组将包含所有唯一元素。
示例
该代码如下 −
const arr = [12, 15, 7, 15];
const makeUnique = (arr = []) => {
arr.sort((a, b) => a - b);
let count = 0;
for (let i = 1; i < arr.length; i++) {
if (arr[i] <= arr[i - 1]) {
const temp = arr[i]
arr[i] = arr[i - 1] + 1
count += arr[i] - temp
};
};
return count;
};
console.log(makeUnique(arr));输出
控制台中的输出将是 −
1
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP