Minimum Operations to Make Array Equal
给一个只有奇数的从1开始的递增数组, 给一个operation, 可以让后边的数字变大1前边的数字变小1. 求多少个operation后, 可以让数组的数字全部相等.
这个题就是观察一下, 比如数字第一个数字肯定是1, 那么最后一个数字是2*(n – 1) + 1 = 2*n – 1; 然后一次变换只能加减1, 那么就求差然后除2即可.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
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; } }; |