Minimum Operations to Make Array Equal
给一个只有奇数的从1开始的递增数组, 给一个operation, 可以让后边的数字变大1前边的数字变小1. 求多少个operation后, 可以让数组的数字全部相等.
这个题就是观察一下, 比如数字第一个数字肯定是1, 那么最后一个数字是2*(n – 1) + 1 = 2*n – 1; 然后一次变换只能加减1, 那么就求差然后除2即可.
class Solution {
public:
int minOperations(int n) {
int res = 0;
int i = 1;
int j = 2*(n - 1) + 1;
while(i < j){
res += (j - i) / 2;
i+=2;
j-=2;
}
return res;
}
};