小红认为一个长度为n的数组a是好的,当且仅当对于任意的i均满足:
∣ai−i∣均相等,其中数组下标i从1开始,小红每次可以对一个数加1或者减1,求把给定的数组变成好数组的最少操作次数
给定长度为 n 的数组 a,定义“好数组”为存在非负整数 k,使得对任意下标 i(从 1 开始)都有
∣ai−i∣=k.我们可以通过每次对某个元素加或减 1 来调整数组,使其变为“好数组”,求最少操作次数。
令 bi=ai−i,则对固定的 k,位置 i 最终要满足
∣ai−i∣=k⟺ai=i+k或ai=i−k.
注意这里并不要求最终的值必须在 [1,n] 范围内,只要操作次数最少即可。
对每个 k(0≤k≤n−1)进行枚举: