输入:nums = [1,2,3]
输出:3
解释:
只需要3次操作(注意每次操作会增加两个元素的值):
[1,2,3] => [2,3,3] => [3,4,3] => [4,4,4]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/minimum-moves-to-equal-array-elements
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
test(arr) {
let count = 0;
let flag1 = true;
let flag2;
let max = 0
for (let m = 0; m < arr.length; m++) {
max+=arr[m] //最多操作次数
}
for (let i = 0; i < max; i++) {
//先判断元素是否相等
for (let l = 0; l < arr.length; l++) {
for (let j = l + 1; j < arr.length; j++) {
if (arr[l] != arr[j]) {
flag1 = false; //不相等时
}
flag2 = flag1;
}
}
//若不相等则进行如下操作
if (!flag2) {
//先按从小到大排序
for (let m = 0; m < arr.length; m++) {
for (let n = m + 1; n < arr.length; n++) {
let temp;
if (arr[m] > arr[n]) {
temp = arr[m];
arr[m] = arr[n];
arr[n] = temp;
}
}
}
//最小的数加1
for (let k = 0; k < arr.length - 1; k++) {
// console.log(arr);
arr[k] = arr[k] + 1;
}
count++; //操作数+1
//
flag1 = true; //还原flag1
} else {
break;
}
}
console.log(count, arr);
}