在 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