Cho num, tạo mảng arr[i] = 2*i+1. Mỗi bước: chọn 2 phần tử khác nhau, +1 cho cái, -1 cho cái kia. Tìm số bước tối thiểu để tất cả phần tử bằng nhau.
Ví dụ: num=5 → mảng [1,3,5,7,9] → 6 bước.
Ví dụ
const num = 5;
const minimumOperations = (num = 1) => {
if (num === 1) return 0;
let arr = new Array(num), i = 0, 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));
Kết quả
6